前端教程:CSS布局-水平&垂直对齐

开课吧开课吧锤锤2021-04-14 11:40

    IT行业近十年来发展迅猛,衍生出许多新的职业,如UI设计师、开发工程师、软件测试工程师等,在众多新兴职业中,Web前端工程师就是其中之一。在IT行业,Web前端真正得到重视大概也要六七年。伴随着因特网的迅速发展,各种因特网项目不断涌现,对用户体验的要求也越来越高,前端开发逐渐成为互联网研发的重要角色。

    CSS布局-水平&垂直对齐

web

    元素居中对齐

    要水平居中对齐一个元素(如<div>),可以使用margin:auto;。

    设置到元素的宽度将防止它溢出到容器的边缘。

    元素通过指定宽度,并将两边的空外边距平均分配:

web

.center {
    margin: auto;
    width: 50%;
    border: 3px solid green;
    padding: 10px;
}

    注意:如果没有设置width属性(或者设置100%),居中对齐将不起作用。

    文本居中对齐

    如果仅仅是为了文本在元素内居中对齐,可以使用text-align:center;

web

.center {
    text-align: center;
    border: 3px solid green;
}

    图片居中对齐

    要让图片居中对齐,可以使用margin:auto;并将它放到块元素中:

web

img {
    display: block;
    margin: auto;
    width: 40%;
}

    左右对齐-使用定位方式

    我们可以使用position:absolute;属性来对齐元素:

.right {
    position: absolute;
    right: 0px;
    width: 300px;
    border: 3px solid #73AD21;
    padding: 10px;
}

    注释:绝对定位元素会被从正常流中删除,并且能够交叠元素。

    提示:当使用position来对齐元素时,通常<body>元素会设置margin和padding。这样可以避免在不同的浏览器中出现可见的差异。

    当使用position属性时,IE8以及更早的版本存在一个问题。如果容器元素(在我们的案例中是<divclass="container">)设置了指定的宽度,并且省略了!DOCTYPE声明,那么IE8以及更早的版本会在右侧增加17px的外边距。这似乎是为滚动条预留的空间。当使用position属性时,请始终设置!DOCTYPE声明:

body {
    margin: 0;
    padding: 0;
}
 
.container {
    position: relative;
    width: 100%;
}
 
.right {
    position: absolute;
    right: 0px;
    width: 300px;
    background-color: #b0e0e6;
}

    左右对齐-使用float方式

    我们也可以使用float属性来对齐元素:

.right {
    float: right;
    width: 300px;
    border: 3px solid #73AD21;
    padding: 10px;
}

    当像这样对齐元素时,对<body>元素的外边距和内边距进行预定义是一个好主意。这样可以避免在不同的浏览器中出现可见的差异。

    注意:如果子元素的高度大于父元素,且子元素设置了浮动,那么子元素将溢出,这时候你可以使用"clearfix(清除浮动)"来解决该问题。

    我们可以在父元素上添加overflow:auto;来解决子元素溢出的问题:

.clearfix {
    overflow: auto;
}

    当使用float属性时,IE8以及更早的版本存在一个问题。如果省略!DOCTYPE声明,那么IE8以及更早的版本会在右侧增加17px的外边距。这似乎是为滚动条预留的空间。当使用float属性时,请始终设置!DOCTYPE声明:

body {
    margin: 0;
    padding: 0;
}
 
.right {
    float: right;
    width: 300px;
    background-color: #b0e0e6;
}

    垂直居中对齐-使用padding

    CSS中有很多方式可以实现垂直居中对齐。一个简单的方式就是头部顶部使用padding:

web

.center {
    padding: 70px 0;
    border: 3px solid green;
}

    如果要水平和垂直都居中,可以使用padding和text-align:center:

web

.center {
    padding: 70px 0;
    border: 3px solid green;
    text-align: center;
}

    垂直居中-使用line-height

web

.center {
    line-height: 200px;
    height: 200px;
    border: 3px solid green;
    text-align: center;
}
 
/* 如果文本有多行,添加以下代码: */
.center p {
    line-height: 1.5;
    display: inline-block;
    vertical-align: middle;
}

    垂直居中-使用position和transform

    除了使用padding和line-height属性外,我们还可以使用transform属性来设置垂直居中:

.center { 
    height: 200px;
    position: relative;
    border: 3px solid green; 
}
 
.center p {
    margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

    前端学习永远不会是单枪匹马,需要前人的引领,也需要平台的不断交流与思想碰撞。这能够快速入门,减少走弯路,还能让自己找到问题的根源。更多的Web教程尽在开课吧广场Web教程频道。

有用
分享