标签:items out flexbox class file horizon 临时 pre .so
① 它的父盒子是block.
# HTML:
<div> CSS权威指南 </div>
<p> Python编程:从入门到实践 </p>
# CSS:
div{border:3px solid red;height:100px;line-height:100px;}
p{border:3px solid blue;height:100px;line-height:100px;}
?
② 如果是inline元素,它没有高度属性可以调整,只有水平居中,只能临时把它{display:inline-block},例如:
<span class="span">
觀自在菩薩,行深般若波羅蜜多時,照見五蘊皆空,度一切苦厄。
</span>
# CSS:
span{height:100px;line-height:100px;outline:3px solid red;display: inline-block;}
?
# HTML:
<div> div.border.padding </div>
<p> p.outline.padding </p>
# CSS:
div{border:3px solid red;padding:40px 0;}
p{outline:3px solid green;padding:40px 0;}
# HTML:
<div class="container">
<div class="div1">测试垂直居中效果测试垂直居中效果</div>
</div>
# CSS:
.container {
width: 300px;
height: 300px;
border: 3px solid;
text-align: center;
vertical-align: middle;
display: table-cell; #将父盒子设置为table-cell,相当于table的td。
}
.div1 {
width: 100px;
height: 100px;
border: 3px solid red;
background-color: yellow;
display: inline-block;#此句对垂直居中无影响,是为了将目标div水平居中而设置。
}
?
table-cell
内部元素是一个整体,居中也是整体居中。
#CSS:
.container {
width: 300px;
height: 500px;
border: 5px solid red;
display: table-cell;
vertical-align: middle;
text-align: center;
}
.div1 {
width: 100px;
height: 100px;
border: 5px solid blue;
display: inline-block;
}
.p1 {
outline: 5px solid green
}
# HTML:
<div class="container">
<div class="div1"> div </div>
<p class="p1"> This is a paragraph </p>
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/1278361/profile/profile-80.jpg?100000" >
</div>
?
PS.table-cell还有很多有趣的用法,待述。
position:relative; #若使用absolute须给父框+ position:relative;
left:50%;
top:50%;
transform:translate(-50%,-50%);
# 缺点:可能干扰其他 transform 效果。
# CSS:
.container {
border: 3px solid red;
width: 300px;
height: 300px;
position: relative;
}
.div1 {
border: 3px solid green;
width: 100px;
height: 100px;
position: absolute;
top: 50%; /* 父框height*50% */
left: 50%; /* 父框width*50% */
margin: -50px 0 0 -50px;
}
# HTML:
<div class="container">
<div class="div1">div1</div>
</div>
绝对定位与负边距法
‘与‘transform法
‘原理是一样的,只是使用的属性不同。.container::after{
content:‘‘;
height:100%;
}
.container::after, .son{
display:inline-block;
vertical-align:middle;
}
优点:适合所有浏览器。
# HTML:
<div class="container">
<div class="div1">codepen.io</div>
</div>
# CSS:
.container {
width: 300px;
height: 300px;
border: 3px solid red;
margin: 20px auto;
padding: 10px;
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-pack: center;
-webkit-box-align: center;
}
.div1 {
width: 100px;
height: 100px;
border: 3px solid green;
line-height: 100px;
text-align: center;
}
?
[附录.CSS3中新加入Flex方法:]
.container {
display: flex;
align-items: center;
}
/* 父盒子使用此设置,子元素无须任何属性即可实现垂直居中 */
优点:内容块的宽高任意。
缺点:IE8/IE9不支持/需浏览器厂商前缀。
.container {
display: box;
box-orient: vertical;
box-pack: center;
}
缺点:不支持IE
标签:items out flexbox class file horizon 临时 pre .so
原文地址:https://www.cnblogs.com/deepblue775737449/p/9553113.html