多行文本垂直居中
方式一:display:table;
此方法不兼容ie6,7。
父盒子设置:display:table;
子盒子设置:display:table-cell;vertical-align:middle;
方式二:
此方法可兼容ie6,7,但父盒子高度固定。
父盒子设置固定宽高、line-height:父盒子高
;
子盒子设置display:inline-block;vertical-align:middle;line-height:1.2;//覆盖父盒子line-height
原理:子盒子设置display:inline-block
转行块元素,当作一行,通过父盒子的line-height属性达到居中效果。
例子:
效果:
html结构:
方式一://**为作用代码
li {
padding-left: 40px;
float: left;
width: 305px;
height: 47px;
padding-top: 16px;
padding-bottom: 19px;
margin: 17px 0;
font-size: 22px;
line-height: 1;
display: table;//***
}
li p.fl {
vertical-align: middle;//***
display: table-cell;//***
float: none;//浮动会强行转换为块元素, 导致display: table-cell失效
}
方式二:
.zjjdwgscx li {
padding-left: 40px;
float: left;
width: 305px;
height: 47px;
padding-top: 16px;
padding-bottom: 19px;
margin: 17px 0;
font-size: 22px;
line-height: 47px;//****
}
li p.fl {
vertical-align: middle;//***
display: inline-block;///****
float: none;//***
line-height: 1.2;//***
width: 220px;
}
附:
单行距中直接用line-height:??px;
水平居中:文本用text-align:center;
,块元素:margin:0 auto
;
单行文本长度超出转省略符号:设置宽度,然后white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
,
多行文本长度超出转省略符号解决方案:
1.写js方法,截取前n个字符(可以转换为字节),后面拼接’…’,如有需要,可以将完整内容,添加在标签title属性中
2.纯css3方法,因使用了WebKit的CSS扩展属性,该方法适用于WebKit浏览器及移动端;
-webkit-line-clamp
用来限制在一个块元素显示的文本的行数。 为了实现该效果,它需要组合其他的WebKit属性
display: -webkit-box;
必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
-webkit-box-orient
必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。
display: block;
display: -webkit-box;
max-width: 400px;
height: 109.2px;
margin: 0 auto;
font-size: 26px;
line-height: 1.4;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
3.网上也有用:after实现的,但文本未溢出也会添加省略号,可以写一段js,结合js一起使用,但也不失为一种好方法,而且可以添加其他视觉效果,如给伪类添加背景图等。
所以 诸君视情况选择吧,,,