文本效果
1、text-shadow 文本阴影(艺术字)
h1{
text-shadow: 5px 5px 5px #FF0000; /*4个参数:水平阴影、垂直阴影、模糊的距离、阴影颜色*/
}
2、text-overflow 文本溢出
p{
text-overflow: clip; /*剪掉溢出的文本*/
text-overflow: ellipsis; /*用省略号...代替溢出的部分来显示,最常用*/
}
overflow可以处理所有的溢出,text-overflow专用于文本溢出。
我们可以在:hover伪类中设置overflow/text-overflow,当鼠标移到内容上时,显示全部|完整内容。
3、word-break 单词换行拆分方式
p{
word-break:break-all; /*如果换行处的单词过长,会拆分单词,并不会加连词线*/
word-break: keep-all; /*如果换行处的单词过长,会转到下一行显示*/
word-break: normal; /*使用浏览器默认的换行符*/
}
边框
1、圆角边框
div{
border:1px solid red;
border-radius:5px; /*设置圆角大小,数值越大,越圆*/
}
border-radius需要和border | backgroud-image | background-color配合使用,单独使用无效。
2、图片边框
p{
border-image: url("border.png") 30 30 round; }
最后一个参数指定图片的填充方式:stretch(拉伸)、repeat(重复,可能会出现残缺图片)、round(重复,自动调整,不会出现残缺图片),一般用round。
3、box-shadow 盒子阴影
div{
width:300px;
height:100px;
box-shadow: 10px 10px 5px #888888; /*参数:水平阴影位置、垂直阴影位置、模糊距离、阴影颜色,前三个参数支持负数*/
}
box-shadow可以脱离border属性单独使用,但盒子(块级元素)的宽、高要确定,所以一般要配合width、height使用。
transform 2d、3d变换
div{
transform:translate(50px,100px);
}
transform即变换,在原位置的基础上进行变换,属性值指定进行哪种变换。
显示的直接就是变换的结果,并不显示变换的过程。
常用的2d变换:
transform: translate(50px,100px); /*平移,参数:水平平移距离、垂直平移距离,支持负数*/ transform: rotate(30deg); /*旋转,以左上角为基点,负数表示逆时针旋转*/ transform: scale(2,3); /* 缩放,参数:水平缩放倍数、垂直缩放倍数,小数形式 */
常用的3d变换:
transform: translate3d(x,y,z); /*3d平移*/ transform: rotate3d(x,y,z,angle); /*3d旋转*/ transform: scale3d(x,y,z); /* 3d缩放 */
都可以单独设置参数:
translateX(x) translateY(y) translateZ(z)
颜色渐变
1、线性渐变 在一个长方形区域朝着一个方向颜色渐变
#gradient {
background: linear-gradient(to right, red , blue, grey);
}
第一个参数指定渐变方向,后面是颜色变化,颜色个数可变。
#gradient {
background: linear-gradient(to right, red , blue, grey); /*从左到右*/
background: linear-gradient(to bottom, red , blue, grey); /*从上到下*/
background: linear-gradient(to bottom right, red , blue, grey); /*左上到右下*/
background: linear-gradient(90deg, red , blue, grey); /*可使用角度*/
}
可缺省渐变方向,缺省时默认为从上到下。
颜色可使用rgba()来表示,这样可以将透明度使用进来。
2、径向渐变 从圆心向外渐变
#gradient {
background: radial-gradient(circle, red 5%, green 15%, blue 60%);
}
第一个参数设置渐变形状,可以是 circle (圆)、 ellipse(椭圆),可缺省,缺省时默认为 ellipse。
可以设置每种颜色占多大面积,数值可以缺省,缺省时默认每种颜色占的大小相同。
#gradient {
background: radial-gradient(red, green, blue);
}
渐变并没有形成动画。
transition 过渡
我们给一个元素设置了2种样式:
div{
width: 100px;
height:100px;
background-color: red;
}
div:hover{
width: 300px;
height:300px;
background-color: red;
}
当鼠标移到<div>上去时,<div>的宽、高会一下子变为300px、300px,瞬时完成,几乎看不到过程。样式改变、2d|3d变换等,都是这样的。
transition可以给某些属性设置一个时间,当这些属性变化时,是在指定的时间内完成,这样我们就可以看到变化过程了,这也算一种动画。
div {
width: 100px;
height: 100px;
background: red;
transition: width 2s, height 2s, transform 2s; /*可指定多个属性,用逗号隔开即可*/
}
div:hover {
width: 300px;
height: 300px;
transform: rotate(180deg);
}
可指定变化速度、开始时间:
transition: width 5s linear 2s;
一个属性变化有4个参数:属性名,在多少秒|毫秒内完成,变化速度,此属性开始变化的时间(2s后开始变化)。
后2个参数可缺省,缺省时默认为linear(匀速变化)、0s(立刻开始)。
可设置多个属性变化,逗号隔开即可。
变化速度常用的值:
- linear 匀速
- ease 慢-快-慢
- ease-in 慢-快-匀速
- ease-out 匀速-慢
动画
动画就是元素从一种样式变为另一种样式的过程。
<style>
div
{
width:100px;
height:100px;
background:red;
animation:myAnimation 5s; /*指定动画名称、多少秒内完成*/
}
@keyframes myAnimation /*动画名称*/
{
0% {background:red;} /*0%表示动画开始,100%表示动画结束*/
50% {background:yellow;width:200px;height:200px} /*{}中写要变化的样式,可以有多个属性,分号隔开即可*/
100% {background:green;width:100px;height:100px}
}
</style>
百分数可以是0%-100%之间的任意值。
animation:动画名称 多少时间内完成 变化速度 开始时间;
后2个参数可缺省。
上面的动画是自动开始的,一般我们是把动画和用户事件(比如鼠标移入、单击等)绑定在一起的:
<style>
div
{
width:100px;
height:100px;
background:red;
}
div:hover{
animation:myAnimation 5s;
}
@keyframes myAnimation
{
0% {background:red;}
50% {background:yellow;width:200px;height:200px}
100% {background:green;width:100px;height:100px}
}
</style> animation:myAnimation 5s;
多列
p{
column-count:3; /*将<p>中的内容分为3大列显示,列之间用一竖空白隔开*/
}
就像报纸上的多列一样。
可指定列之间的间距:
p{
column-count:3;
column-gap: 40px; /*指定列之间的间距*/
}
可指定列之间的分隔:
p{
column-count:3;
column-gap: 40px;
column-rule: 1px solid lightblue; /*指定列之间的分隔竖线样式,缺省此属性时默认没有竖线分隔*/
}
来源:https://www.cnblogs.com/chy18883701161/p/11332426.html