2024-08-30进阶8、CSS高阶

盒子模型的真实尺寸

盒子的width和height值固定时,如果盒子增加border和padding,盒子整体的尺寸会变大,所以盒子的真实尺寸为:
盒子宽度 = margin左右+border左右+padding左右+width
盒子高度 = margin上下+border上下+padding上下+height

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
       .box1{
            width: 200px;
            height: 200px;
            background-color: pink;
            /* 边框 */
            border: 5px solid blue;
            /* 内边距 */
            padding: 30px;
            /* 外边距 */
            margin: 50px;
        }
    </style>
</head>
<body>
    <div class="box1"></div>
</body>
</html>

定位 position

top:距离上面的位置
bottom:距离下面的位置
left:距离左边的位置
right:距离右边的位置

固定定位 fixed

如标题栏、项目栏等

相对定位 relative

1.相对于原始位置的移动
2.原来的位置继续占有,后面的盒子保留在原来的位置

绝对定位 absolute

1.祖先元素有定位(相对,绝对,固定定位),则以最近一级的有定位祖先元素为参考点移动
2.如果没有祖先元素或者祖先元素没有定位,则以浏览器为准定位
3.原来的位置不再占有,后面的盒子会占用位置

子绝父相

1.子级绝对定位,不会占有位置,可以放到父盒子里面的任何一个地方,不会影响其他的兄弟盒子
2.父盒子需要加定位限制,子盒子在父盒子内显示
3.父盒子布局时,需要占有位置,因此父亲只能是相对定位


子绝父相.png

flex布局

又称弹性布局,每个盒子占一份
父盒子box设置display: flex;使box里面指定为flex布局;设置子盒子为响应式flex:1;
如图例,生成了7个盒子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            display: flex;
        }
        .inner_box {
            width: 200px;
            height: 200px;
            border: 3px solid red;
        /* 每一个盒子占一份 */
            flex: 1;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="inner_box">1</div>
        <div class="inner_box">2</div>
        <div class="inner_box">3</div>
        <div class="inner_box">4</div>
        <div class="inner_box">5</div>
        <div class="inner_box">6</div>
        <div class="inner_box">7</div>
    </div>
</body>
</html>

flex中的属性

justify-content 相对x轴

start 最开始排列
center 居中排列
end 最末尾排列
space-between 均匀排列每个元素,首个元素放置于起点,末尾元素放置于终点
space-evenly 均匀排列每个元素,每个元素之间的间隔相等
space-around 均匀排列每个元素,每个元素周围分配相同的空间

align-items 相对y轴

flex-start 元素位于容器的开头
center 元素位于容器的中心
flex-end 元素位于容器的结尾

display的其他用法

inline 元素以行内元素显示
block 元素以块元素显示
none 元素隐藏且不占位置

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容