clearfix
即可.clearfix::after {
content: '';
display: block;
height: 0;
line-height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
zoom: 1;
}
.box::after {
content: '';
display: block;
width: 0;
height: 0;
border: 6px solid transparent;
border-left: 6px solid red;
position: absolute;
bottom: -20px;
right: -20px;
}
.square {
width: 100px;
height: 100px;
background-color: #FFF;
position: relative;
border: 2px #000000 solid;
}
.square::before {
content: "";
width: 0px;
height: 0px;
display: block;
position: absolute;
z-index: 2;
top: 25%;
right: -28px;
border: 15px solid #FFF;
border-color: transparent transparent transparent #FFF;
}
.square::after {
content: "";
width: 0px;
height: 0px;
display: block;
position: absolute;
z-index: 1;
top: 25%;
right: -30px;
border: 15px solid #FFF;
border-color: transparent transparent transparent #000;
}
<style>
span::after {
content: ','
}
</style>
<body>
<span>张新</span>
</body>
场景:
两元素 A、B 之间有间隙
鼠标 hover 元素 A 时,元素 B 显示;在鼠标移动到元素 B 上,元素 B 一直显示
CSS 实现:
方式一:兄弟元素,添加伪元素
方式二:兄弟元素,给父元素 添加 hover
CSS 实现:
方式一:标签全局属性 title
属性
方式二:自定义属性
span {
position: relative;
}
span:hover::before {
content: attr(data-title);
position: absolute;
top: 200px;
left: 0;
display: block;
width: 200px;
background: yellow;
}
<span data-title="张新是帅哥">张新</span>
<style>
.box {
counter-reset: aaa;
}
input:checked {
counter-increment: aaa;
}
span::after {
content: counter(aaa)
}
</style>
<body>
<div class="box">
1
<input type="checkbox" name="" id=""> 2
<input type="checkbox" name="" id=""> 3
<input type="checkbox" name="" id="">
</div>
<span></span>
</body>
not
child
伪类结合,简化 CSS 选择器// 最后一个li标签除外的li标签
li:not(:last-child){
width: 100px;
background-color: red;
}
:focus
方式1: 父元素设置 overflow: hidden;
方式2: 浮动元素后面添加 <div style="clear:both"></div>
方式3: 使用伪元素清除浮动: 直接给要清除浮动的元素添加类名 clearfix
,代码如下
// 伪元素清除浮动:
.clearfix:after {
content: '';
height: 0;
line-height: 0;
display: block;
clear: both;
visibility: hidden;
}
.clearfix {
zoom: 1;
}
原因分析:
情况1: 两个垂直方向的元素(第一个设置 margin-bottom
; 第二个设置 margin-top
)
两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值
两个相邻的外边距都是负数时,折叠结果是两者绝对值的较大值
两个外边距一正一负时,折叠结果是两者的相加的和
情况2: 父子元素嵌套(子元素设置 margin-top
, 父元素一起下来了)
解决方案:
尽量使用padding / margin-bottom
父元素设置 overflow: hidden;
父元素设置边框 border: 1px solid transparent;
a 标签 添加背景图片;设置 href
属性;a 标签中写:logo的中文名
代码如下:
a.logo {
display: block;
width: 200px;
height: 200px;
background: url('../img.jpg') no-repeat;
text-indent: -999px;
}
// text-indent 设置文本缩进
实现1:img 标签设置属性 align="left" / align="right"
实现2:图片设置 float
脱离标准流; 文字盒子不脱标 (经典),代码如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>2</title>
<style>
img {
float: left;
}
</style>
</head>
<body>
<img src="./assets/img1.png" width="40">
<span class="text">
腾讯大王卡,月费:19元,定向流量(国内):腾讯系列APP客户端免费流量
</span>
</body>
</html>
.text {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
`text-overflow: ellipsis` 显示省略符号来代表被修剪的文本
`white-space: nowrap` 文本不会换行,文本会在在同一行上继续,直到遇到 <br>
设置文本 字间距 letter-spacing: 0.5px;
设置文本 缩进 text-indent: 20px;
display: table
; 子元素 diaplay: table-cell