CSS布局

作者: 我不傻_cyy | 来源:发表于2019-10-16 21:03 被阅读0次

1.CSS绝对定位
属性名:position
属性值:absolute
使用了绝对定位的元素,相当于该元素被从原文档中删除了。
例如:

<style>
    .abs{
        position: absolute;
        top: 150px;
        left: 50px;
    }
</style>
<p>正常文字1</p>
<p>正常文字2</p>
<p class="abs">绝对定位元素3</p>
<p>正常文字4</p>

效果如下



绝对定位是基于最近的一个定位了的父容器
例如:

<style>
    .abs{
        position: absolute;
        top: 150px;
        left: 50px;
    }
    .absdiv{
        position: absolute;
        left:150px;
        top:50px;
    }
</style>
<p>正常文字1</p>
<p>正常文字2</p>
<div class="absdiv">
    这是一个定位了的div
    <p class="abs">绝对定位元素3</p>
</div>
<p>正常文字4</p>

效果如下:



如果没有了定位了的父容器,那么它的最近的一个定位了的父容器就是body
通过绝对定位可以把一个元素放在另一个元素上,这样位置就重复了
元素重复之后,就存在谁掩盖谁的问题,这时候可以通过设置z-index属性,当z-index值越大,就表示放在上面,z-index越小,就表示放在下面。
例如:

<style>
    #abs{
        position: absolute;
        top: 20px;
        left: 60px;
        z-index:1
    }
    #abs1{
        position: absolute;
        left:60px;
        top:120px;
        z-index: -1
    }
</style>
<p>正常文字1</p>
<p>正常文字2</p>
<p>正常文字2</p>
<p>正常文字2</p>
<p>正常文字2</p>
<p>正常文字2</p>
<img id="abs" src="file:///Users/chenyangyang/Downloads/example.gif">
<img id="abs1" src="file:///Users/chenyangyang/Downloads/example.gif">
<p>正常文字4</p>

效果如下:



2.CSS相对定位
属性名:position
属性值:relative
与绝对定位不同,相对定位不会把元素从原文档中删除,而是在原文档位置的基础上,移动一定的距离。
3.CSS浮动
浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或者另一个浮动框的边框为止。
属性名:float
属性值:left、right
文字向右浮动:浮动后,原来的坑就让出来了,并且是在原来的高度的基础上,向右浮动。
例如:

<style>
    .r{
        float:right
    }
</style>
<p>正常文字1</p>
<p>正常文字2</p>
<p class="r">浮动文字</p>
<p>正常文字3</p>
<p>正常文字4</p>

效果如下:



文字向左浮动
首先,文字向左浮动后,会把坑让出来,这时候正常文字3就会试图占这个坑,但是,发现这个浮动文字并没有走,所以正常文字3就会排在它后面。

<style>
   .r{
       float: left;
   }
</style>
<div>正常文字1</div>
<div>正常文字2</div>
<div class="r">浮动文字</div>
<div>正常文字3</div>
<div>正常文字4</div>

效果如下:



如果不允许出现浮动元素,可以设置
属性名:clear
属性值:left、right、both、none
如果左边出现了浮动的元素,则设置clear:left即可以达到不允许浮动元素出现在左边的效果。
默认的div排列是会换行的,如果使用float就可以达到水平排列的效果,通常会用在菜单,导航栏等地方,如果查过了父容器,还会有自动换行的效果。
4.CSS显示方式
元素的display显示方式有多种,隐藏、块级、内联、内敛-块级
隐藏:使得被选择的元素隐藏,并且不占用原来的位置。
属性名:display
属性值:none
块级:块级元素会自动在前面和后面加上换行,并且在其上的width和height也能够生效。div是默认的块级元素。
内联:内联元素前后没有换行,并且在其上的width和height也无效,其大小由其中的内容决定。span默认是内联元素
属性名:display
属性值:inline
内联-块级
内联是不换行的,但是不能指定大小。块级是能指定大小的,但是会换行。
有时候需要元素处于同一行,并且能够指定大小,这时候就需要用到内联-块级 inline-block。
5.CSS水平居中
内容居中:
标签属性align:center
样式属性text-align:center
元素居中:
设置块级元素的宽度并设置样式margin:0 auto来使元素居中。
内联元素可以通过放置在div中,然后设置给div设置text-align实现。
6.CSS垂直居中
设置行高line-height的方式使元素垂直居中。

<div style="border: 1px solid blue;line-height: 50px;">
    内容是内容
</div>

还可以借助设置相同的上下内边距,来实现垂直居中的效果。
可以使用display:table-ceil的方式将div用单元格形式显示出来,然后借助单元格的垂直居中vertical-align:middle来达到效果。

<div style="border: 1px solid blue;display: table-cell;height:50px;vertical-align: middle;">
    内容是内容
</div>

相关文章

网友评论

      本文标题:CSS布局

      本文链接:https://www.haomeiwen.com/subject/njwdmctx.html