首页 > 其他分享 >css的布局

css的布局

时间:2024-07-04 17:57:29浏览次数:26  
标签:浮动 BFC 布局 块级 元素 width margin css

1css布局

标准流

标准流处在网页的最底层,表示页面的位置。在标准流中有两种排列方式,垂直排列,水平排列

在css 中将元素分为三类,行内元素,块级元素,行内块级元素

如果是块级元素,就会垂直排列,如果是行内元素或者行内块级元素,就会水平排列

如何让块级元素水平排列呢?

    float:left/ringt;

2.浮动流排版方式

浮动元素自围现象

浮动元素不会挡住没有浮动元素中的文字,没有浮动的文字会自动给浮动的元素让位置,这个就是浮动元素字围现象

-特点:
1.在浮动流中是不区分块级元素/行内元素/行内块级元素的无论是块级元素/行内元素/行内块级元素都可以水平排版

2.在浮动流中无论是块级元素/行内元素/行内块级元素都可以设置
宽高
3.综上所述,浮动流中的元素和标准流中的行内块级元素很像

(面试)如何解决高度塌陷?

一般结构都是父子元素关系,父元素的高度由子元素撑起来

当子元素浮动以后(float),子元素就脱离文档流,就不再标准流占位置了,此时的父元素的高度该如何呢?父元素就无法获取高度,父元素的告诉为0了,就到是父元素塌陷了

解决方案一:写死父元素高度(但是不现实,如果所有子元素的跨度和大于父元素的宽度,就会被挤到第二行)

解决方案二:在所有子元素的最后写一个空白div(称其父元素的高度),清除浮动(clear:none),虽然没有高度,但是他是块级元素(会对页面结构有影响)

解决方案三:(最完美的解决方案)在一个高度塌陷的父元素后加一个空白的块级元素 .father::after{ contant"  ";

                       dispaly:block;

                        /*清除浮动*/clera:none;}

解决方案四:BFC(更简单的)给父元素变成BFC布局,overflaot:atuo;

3.BFC布局

(背下来)块格式化上下文 (Block Formatting Context,BFC)是Web页面的可视化CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素.与其他元素交互区域

BFC的布局规则
1.内部的Box会在垂直方向一个接着一个地放置。(跟块级元素一样)
2.Box垂直方向上的距离由margin决定。属于同一个BFC的两个相邻的Box的margin会发生重叠。(margin垂直方向相加)
3.每个盒子的左外边框紧挨着包含块的左边框,即使浮动元素也是如此。(规定)
4.BFC的区域不会与float box重叠。
5.BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然。
6.计算BFC的高度时,浮动子元素也参与计算。与其他元素交互的区域。

BFC可以做那些:两栏自适应,三列布局

三行三列(九宫格)


<!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>
        .container{
            width:600px;
            height:600px;
            border: 1px solid rgb(27, 4, 4);
            margin:0 auto;
        }
        /* 子元素样式 */
        .container div{
            width:33%;
            height: 33%;
            border: 1px solid;
            float: left;
        }
    </style>
</head>
<body>
    <div class="container">
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
    </div>
</body>
</html>


<!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>
        /*清除所有标签自带属性 */
        *{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        /* 父容器的样式 */
        .container{
          width: 1400px;
          height: 1000px;
          background-color: gray;
          margin:0 auto
        }
        .container .header{
         width: 100%;
         height: 100px;
         background-color: aquamarine;
        }
        .header ul{
            float: right;
            
        }
        /* 导航栏子元素的设置 */
        .header ul li{
            float: left;
            width: 80px;
            background-color: brown;
            text-align: center;
            margin-left: 10px;
        }
        .container .content{
            width: 100%;
            height: 800px;
            background-color: rgb(241, 224, 92);
        }
        /*内容左边 */
        .content .contentleft{
            width: 500px;
            height: 780px;
            background-color: #f3a3f4;
            float: left;
            margin-top: 10px;
            margin-bottom: 10px;
            margin-right: 10px;
            
        }
        /* 内容右边 */
        .content .contentright{
            width: 890px;
            height: 780px;
            background-color: #e4a9a9;
            float: left;
            
            margin-bottom: 10px;

        }
        .contentright div{
            width: 280px;
            height: 385px;
            background-color: rgb(242, 115, 4);
            float: left;
            margin-top: 10px;
            margin-right: 10px;}
         .container .footer{
            width: 100%;
            height: 100px;
            background-color: rgb(231, 218, 244);
            
        }

        
    </style>
</head>
<body>
    <div class="container">
       <div class="header">
        <ul>
            <li>首页</li>
            <li>食品</li>
            <li>我的</li>
            <li>关于</li>
            <li>服装</li>
            <li>电子</li>
        </ul>
       </div>
       <div class="content">
        <div class="contentleft"></div>
        <div class="contentright">
            <div></div>
            <div></div>
            <div></div>
            <div></div>
            <div></div>
            <div></div>
        </div>
       </div>
       <div class="footer"></div>
    </div>
</body>
</html>

标签:浮动,BFC,布局,块级,元素,width,margin,css
From: https://blog.csdn.net/weixin_67252311/article/details/140179924

相关文章

  • 第四章 对象的实例化内存布局与访问定位
    对象的实例化内存布局与访问定位对象的实例化 对象创建的方式(1)new:最常见的方式、单例类中调用getInstance的静态类方法,XXXFactory的静态方法(2)Class的newInstance方法:在JDK9里面被标记为过时的方法,因为只能调用空参构造器,并且权限必须为public(3)Cons......
  • 原来逆水寒官网这样用CSS进行适配的
    前言这段时间对逆水寒很是着迷,这不我又打开了它的官网,不得不说网易前端官网做的是真炫酷!!!同样是前端的开发者(自己还是小菜鸡罢了),就不得不想扣扣官方的细节了,拿出我们老生常谈的问题—适配,官方做的很漂亮,窗口缩小不会影响页面内容位置的偏移,当我将窗口缩小的时候还会出现......
  • 【双出版加持!录用率高!见刊、检索更稳定!】第六届结构抗震与土木工程研究国际学术会议 (I
    随着社会的发展,城市规模的不断扩大,建筑形态也趋于多样化和复杂化,建筑结构形式逐渐由规则简单向高层、大跨甚至特殊复杂的方向发展。而房屋建筑是人们正常生活和生产活动的基本场所,房屋建筑结构的安全必须得到充分保障。但是,自然灾害(地震、风、雪、雨)、人为失误和事故(爆炸、......
  • selenium03_控制台调试xpath/css语法,代码执行jQuery
    1.控制台调试Xpath语法示例: 按F12,调出控制台Console,调试Xpath语法的格式:$x("xpath语法")。如:$x("//*[@id='kw']")    2.控制台调试css语法调试css语法的格式:$("css语法")。如:$("#kw")   3.代码执行jQueryjQuery是从css语法演变过来的,其实就是css,用到css语言......
  • 【CSS: cursor】鼠标光标指针样式大全
    浏览器内置指针样式:标了红色*号的为我认为的常用指针样式。cursor:auto;(默认值)浏览器根据当前内容自动决定指针样式;例如当内容是文字时使用text样式cursor:default;默认指针,通常是箭头。cursor:none;不渲染指针!cursor:context-menu;(该指针经测试没效果?)指针下有可用内......
  • 前端面试题(CSS篇一)
    一、介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的?相关知识点:(1)有两种盒模型:IE盒模型(border-box)、W3C标准盒模型(content-box)(2)盒模型:分为内容(content)、填充(padding)、边界(margin)、边框(border)四个部分IE盒模型和W3C标准盒模型的区别:(1)W3C标准盒模型......
  • 编译elementUI主题scss
    elementVue2工程1. 安装包"gulp":"^4.0.2","gulp-autoprefixer":"^8.0.0","gulp-minify-css":"^1.2.4","gulp-sass":"^4.0.2","gulp-uglify":"^3.0.2",2.......
  • html+JavaScript+css 24点计算器
    源代码    采用穷举计算方法讲人话:根据四个数随机列算式,算出来是24就显示在列表里。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0">&l......
  • 不实用iframe,CSS媒体查询依旧生效
    这段SCSS代码定义了用于处理响应式设计和媒体查询的功能和混合器。以下是对这段代码的逐行解释:```scss$mediaMinWidth:1024px;```定义了一个变量`$mediaMinWidth`,其值为1024像素。```scss@functiontranslate-media-condition($c){$condMap:("screen":"......
  • css3 列表按先后顺序移动过来显示
    要实现列表按先后顺序平移过来,可以使用CSS动画结合:nth-child()选择器。以下是一个简单的示例:HTML:<ulclass="list"><li>Item1</li><li>Item2</li><li>Item3</li><li>Item4</li></ul>CSS:.listli{opacity:......