2)将 border 的值加大,并设为不同的颜色;
3)宽高均设为 0,剩下四个border,就变成。
4)想要哪个三角形,就保留哪个三角形的颜色,其他的都设置为透明。transparent 表示透明。将边框宽度设置为不同,就可以变换三角形的形状。
1)画圆角矩形;
2)画一个深色的三角形;
3)然后再画一个同样大小白色的三角形盖在它上面,两个三角形错位 2 个像素,这样深色三角形的边缘就刚好露出一个像素
a、normal: 连续的空白符会被合并,换行符会被当作空白符来处理。
b、nowrap: 和 normal 一样,连续的空白符会被合并。但文本内的换行无效。
c、pre: 连续的空白符会被保留。在遇到换行符或者 <br>元素时才会换行。
d、pre-wrap: 连续的空白符会被保留。在遇到换行符或者 <br>元素,或者需要为了填充「行框盒子( line boxes )」时才会换行。
e、pre-line: 连续的空白符会被合并。在遇到换行符或者 <br>元素,或者需要为了填充「行框盒子( line boxes )」时会换行。
f、break-spaces:
与pre-wrap的行为相同,除了:
任何保留的空白序列总是占用空间,包括在行尾。
每个保留的空格字符后都存在换行机会,包括空格字符之间。
这样保留的空间占用空间而不会挂起,从而影响盒子的固有尺寸(最小内容大小和最大内容大小)。
text-overflow 属性确定如何显示的溢出内容。它可以被剪切,显示一个省略号('...')或显示一个自定义字符串。
a、clip:此为默认值。在内容区域的极限处截断文本, 因此在字符的中间可能会发生截断。如果你的目标浏览器支持text-overflow: '',为了能在两个字符过渡处截断,你可以使用一个空字符串值 ('') 作为text-overflow属性的值。
b、ellipsis:用一个省略号 ('…')来表示被截断的文本。 这个省略号被添加在内容区域中,因此会减少显示的文本。如果空间太小到连省略号都容纳不下,那么这个省略号也会被截断。
c、<string>:用来表示被截断的文本。 字符串内容将被添加在内容区域中,所以会减少显示出的文本。如果空间太小到连省略号都容纳不下,那么这个字符串也会被截断。
- webkit-line-clamp 是webkit的私有属性,是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。
-webkit-line-clamp 属性 可以把块容器中的内容限制为指定的行数。
它只有在display属性设置成 -webkit-box或者-webkit-inline-box并且-webkit-box-orient(en-US) 属性设置成vertical时才有效果
在大部分情况下,也需要设置overflow属性为hidden, 否则,里面的内容不会被裁减,并且在内容显示为指定行数后还会显示省略号(ellipsis ).
1.position:absolute+transform:translate(-50%,-50%)2.position:absolute+margin-top:-100px+margin-left:-100px(需要直到div的宽高)
3.flex
4.绝对定位的top,left,bottom,right都设置为0,然后通过margin:auto实现水平垂直居中
5.display:table-cellvertical-align:middletext-align:center
6.calc函数计算实现
1. DOM结构 :元素不会渲染
2. 事件监听 :不能监听DOM事件
3. 继承 :子元素不会继承
4. 性能 :改变此属性会重排,性能较差
1. DOM结构 :元素会渲染
2. 事件监听 :能监听DOM事件
3. 继承 :子元素会继承,可以通过visibility:visible来取消继承
4. 性能 :改变此属性会重绘,性能较好
1. DOM结构 :元素会渲染
2. 事件监听 :能监听DOM事件
3. 继承 :子元素会继承,而且不能通过opcity:1来取消隐藏
4. 性能 :改变此属性会重绘,性能较好
window.divicePixelRatio=2(默认)
意思是:我们css中1px相当于实际移动端设备2px
1.border-width:0.5px
2.box-shadow内阴影模拟边框,
box-shadow:inset 0px -1px 1px 1px red
3.通过viewport设置rem的基准值,就可以直接写rem了,较好的解决方案
4.伪类+transform
通过:after或:before设置border,结合定位
两侧宽度固定,中间宽度自适应
所以我们要尽量少使用以上属性和方法