本系列文章,主要是围绕css3属性,实现咱们常见的各类效果,这些效果都是咱们实战开发中常常能够用到的效果:css
text-align: justify;
复制代码
效果以下:html
连字符用: $shy 去表示。 若是咱们想使用连字符断行,能够经过hyphens 去控制,css3
hyphens: none // 隐藏连字符
hyphens: manual //显示连字符
hyphens: auto //自动
复制代码
代码以下:程序员
<div>
the onlu way to get rid of a temp ­ tation is to yield to it;
</div>
复制代码
width: 100px;
height: 100px;
border: 1px solid #ddd;
text-align: justify;
hyphens: manual;
复制代码
效果以下:编程
在咱们实际开发过程当中,换行这种事情是常常须要的,可能大部分时候,直接在想换行的地方加一个"<br>"便可,这样方案没问题,可是每一个换行的地方都要加一个br,可维护性会相对差一点, 那么,是否有其余更好的方案呢?浏览器
实际上,有一个 Unicode 字符是专门表明换行符的:0x000A1。在 CSS 中, 这个字符能够写做 "\000A",或简化为 "\A"。咱们能够用它来做为 ::after 伪元素的内容,并将其添加到每一个元素的尾部,bash
代码以下:布局
span::after {
content: '\A';
}
复制代码
咱们设置之后,发现并无生效,为何呢?这是由于换行符会与其相邻的空白符进行合并,因此最后结果仍是没有换行,因此,接下来要作的就是,如何不让换行符和空白符合并呢? 答案就是:white-space: pre;post
代码以下:性能
span::after {
content: '\A';
white-space: pre;
}
复制代码
说到斑马条纹,咱们第一时间想到的可能就是选择器:nth-child(odd/even), 经过分别设置奇数行和偶数行不一样样式,可是这种方法是对多个不一样的标签去设置,例如ul下面有多个li,就能够这样设置.
可是若是只是一个段落文本,那该如何设置斑马条纹呢?
首先,咱们看一下最终的效果:
将段落切成多段,而后分别放到多个标签下,而后再对标签使用nth-child设置样式,可是,很显然,这种方式太low了,怎么切分红多个段落?并且又增长了这么多新标签,对性能也影响。
采用渐变去实现条纹背景,同时配合行高实现垂直居中。 代码以下:
//css
width: 300px;
line-height: 1.6em;
background-image: linear-gradient(to bottom, #ddd 50%, transparent 0);
background-size: 100% 3.2em;
background-origin: content-box;
复制代码
//html
<p>
结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工做。一我的输入代码,而另外一我的审查他输入的每一行代码。
</p>
复制代码
第三个参数控制缩紧大小
tab-size: 4;
复制代码
代码以下:
text-decoration: underline;
复制代码
效果以下:
代码以下:
border-bottom: 1px solid #000;
line-height: 0.9em //让边框更贴近文字
复制代码
代码以下:
box-shadow: 0px 1px;
line-height: 0.9em; //让边框更贴近文字
复制代码
代码以下:
background: linear-gradient(green, green) no-repeat;
background-size: 100% 1px;
background-position: 0px 1em; //设置背景的起始位置
复制代码
也就是说,如今其实有新属性是能够设置下划线的效果的,
text-decoration-color 用于自定义下划线或其余装饰效果的颜色。
text-decoration-style 用于定义装饰效果的风格(好比实线、虚线、波浪线等)。
text-decoration-skip 用于指定是否避让空格、字母降部或其余对象。
text-underline-position 用于微调下划线的具体摆放位置。
复制代码
固然,以上新特性可能部分浏览器尚未到支持。
实现原理:经过设置四个方向的偏移量, 而后 全部偏移量的效果组合在一块儿,就实现了相似边框的效果。 代码以下:
width: 300px;
height: 150px;
background: green;
color: #fff;
font-size: 80px;
text-align: center;
text-shadow: 3px 3px red, -3px -3px red, -3px 3px red, 3px -3px red;
复制代码
代码以下:
width: 300px;
height: 150px;
background: green;
color: #fff;
font-size: 80px;
text-align: center;
text-shadow: 0px 0px 10px yellow;
复制代码
实现原理:主要思路就是使用一长串累加的投影, 不设模糊并以 1px 的跨度逐渐错开,使颜色逐渐变暗,而后在底部加一层强 烈模糊的暗投影,从而模拟完整的立体效果。
代码以下:
width: 300px;
height: 150px;
background: green;
color: #fff;
font-size: 80px;
text-align: center;
text-shadow: 0px 0px 2px hsl(0,0%,85%),
0px 0px 4px hsl(0,0%,75%),
0px 0px 6px hsl(0,0%,65%),
0px 0px 8px hsl(0,0%,55%),
0px 0px 10px hsl(0,0%,45%);
复制代码