最全CSS各种布局详解

2023-05-16

一、单列布局的实现

1、单列布局中最常用的水平居中的四种方法

  • 同时设置父元素和子元素的样式:父元素使用text-align实现,子元素使用inline-block。这里宽高背景只是为了展示。
 .parent{
        text-align: center;
    }
 .child{
        display: inline-block;
        width: 100px;
        height: 100px;
        background-color: aqua;
    }
  • 使用margin:0 auto来实现,必须要设置一个width.
.child{
        margin: 0 auto;
        width: 100px;
        height: 100px;
        background-color: aqua;
    }
  • 使用绝对定位,父元素使用相对,子元素绝对。
.parent{
        position: relative;
    }
.child{
        position: absolute;
        left: 50%;
    }
  • 使用弹性盒flex布局实现
    弹性盒是专为不同尺寸和不同设备的元素排布而设计的。父元素中使用block:flex设置一个弹性盒,子元素中flex:number设置该子元素占一行中的几份。
<style>
   .header{
       display: flex;
     }
   a{
       margin: 0 auto;
   }
    .A,.C{
        flex: 1;
    }
    .B{
        flex: 2;
    }
</style>
<body>
<div class="header">
    <a href="##" class="A">AA</a>
    <a href="##" class="B">BB</a>
    <a href="##" class="C">CC</a>
</div>
</body>

弹性盒几乎能实现目前存在的所有布局,它还有很多的内容在这里也详细说一下。

 flex-direction:定义了排布是按行还是列。
 justify-content:对于弹性项没有填满弹性容器的时候,它定义弹性项是怎么对齐的。

二、多列布局

1、多列布局的“双飞翼布局”,即左右固定,中间自适应,他可以利用margin-left为负数来实现,它的实现原理就是margin为负值可以改变float元素的排列位置。

<div class="main">
    <div class="main-content">main content</div>
</div>
<div class="left">left</div>
<div class="right">right</div>


*{
        margin:0;
        padding: 0
    }
    .main{
        float: left;
        width: 100%;

    }
    .main .main-content{
        margin: 0 210px;
        background-color: rgba(33, 114, 214, 0.8);
        height: 500px
    }
    .left{
        width: 200px;
        float: left;
        background-color: rgba(255, 82, 0, 0.8);
        margin-left: -100%;
        height: 200px

    }
    .right{
        width: 200px;
        height: 200px;
        margin-left: -200px;
        float: left;
        background-color: rgba(90, 243, 151, 0.8);
    }

多列布局的“双飞翼布局”,也可以利用弹性盒实现,同样父元素设置display:flex, 子元素中左右固定栏设置为固定宽度,中间自适应部分设置flex:1.

<style>
    .parent{display:flex;}
    .left{
        width:100px;
        background-color: aqua;
    }
    .main{
        flex:1;
        background-color: red;
    }
    .right{
        width:100px;
        background-color: greenyellow;
    }
</style>
<div class="parent">
    <div class="left">left</div>
    <div class="main">main</div>
    <div class="right">right</div>
</div>

 

2、真正的多列布局
借助margin为负值可以增加宽度的方式来进行多列布局。

<style>
.parent{
        margin:0 auto;
        width: 500px;
        border: 1px #ccc solid;
        margin-bottom: 20px;
}

.column{
    width:92px;
    height: 92px;
    background-color: #ccc;
    margin-bottom: 20px;
    float: left;
    margin-right: 10px;
}
</style>

<div class="parent">
    <div class="column">1</div>
    <div class="column">1</div>
    <div class="column">1</div>
    <div class="column">1</div>
</div>

同样我们也可以使用弹性盒布局

<style>
    .parent{display:flex;}
    .column{flex:1;}
    .column +.column{margin-left:20px;}
</style>
<body>
<div class="parent">
    <div class="column">1</div>
    <div class="column">1</div>
    <div class="column">1</div>
    <div class="column">1</div>
</div>
</body>

三、响应式布局

响应式布局在不同的大小的屏幕上如何做出不同的布局,视口指的是浏览器窗口的可视区域,视口大小决定了页面布局的可用宽度,我们可以使用meta标签设置设置布局宽度等于设备宽度,布局viewport等于度量viewport.

<meta name="viewport" content="width=device-width,initial-scale=1">

此时,页面布局的宽度就是你的设配的宽度。

使用媒体查询来实现响应设计(CSS3 media queries)

CSS3的media queries的模块扩展了@media的应用,不仅可以识别不同烦人媒体类型,还能识别媒体的特征——比如屏幕宽度,像素等参数。media queries语法:@media 媒体类型 媒体识别条件表达式。

@media handheld, (min-width:700px) and (orientation:landscape){
    
}

当使用有显示屏的设备的时候:当最小宽度<700px,或者是横屏的时候执行代码。

在三栏布局中使用响应设计

.row{
        width: 960px;
    }
    .row:after{
        clear: left;
        content: '';
        /*清除浮动*/
        display: table;
    }
    [class^='col']{
        float: left;
    }
    .col1{
        width: 25%;
    }
    .col2{
        width: 50%;
    }
    .col3{
        width: 75%;
    }
    /** 屏幕设备宽度大于1200的时候,row宽度固定为1170px**/
    @media (min-width: 1200px) {
        .row{
            width:1170px
        }
    }
    /** 平板电脑的设置**/
    @media (min-width: 768px) and (max-width: 979px){
        .row{
            width:724px
        }
    }
    /** 横屏手机或者竖屏平板的所有列按行排列**/
    @media  (max-width:767px){
        [class^='col']{
            float:none;
            width: 100%;
        }
        .row{
            width: 100%;
        }
    }
    /** 竖屏手机**/
    @media (max-width: 480px){

    }
</style>
<body>
<div class="container">
    <div class="row">
        <div class="header">header</div>
    </div>
    <div class="row">
        <div class="col1">q</div>
        <div class="col2">w</div>
        <div class="col1">e</div>
    </div>
    <div class="row">
        <div class="footer">footer</div>
    </div>
</div>
</body>


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最全CSS各种布局详解 的相关文章

  • 汇编中的标号概念

    地址标号和数据标号 地址标号 1 assume cs code 2 code segment 3 a db 1 2 3 4 5 6 7 8 4 b dw 0 5 start mov si offset a 6 mov bx offset b
  • 汇编语言不带冒号标号的用法

    汇编语言中 xff0c 有一种编程方法 xff1a 直接定址表 这种方法和高级语言 xff0c C语言中的数组有类似的思想 xff0c 就是将参数编排在一起 xff0c 然后通过数组名的调用 xff0c 得到需要的数值 汇编语言中 xff0
  • 实战录 | 基于openflow协议的抓包分析

    实战录 导语 云端卫士 实战录 栏目定期会向粉丝朋友们分享一些在开发运维中的经验和技巧 xff0c 希望对于关注我们的朋友有所裨益 本期分享人为云端卫士安全SDN工程师宋飞虎 xff0c 将带来基于openflow协议的抓包分析 一 什么是
  • 汇编中的标号

    当程序中要跳转到另一位置时 xff0c 需要有一个标识来指示新的位置 xff0c 这就是标号 xff0c 通过在目标地址的前面放上一个标号 xff0c 可以在指令中使用标号来代替直接使用地址 使用变量是任何编程语言都要遇到的工作 变量是计算
  • win32常用的汇编指令和寄存器

    通用寄存器 EAX 累加 Accumulator 寄存器 AX AH AL 常用于乘 除法和函数返回值 EBX 基址 Base 寄存器 BX BH BL 常做内存数据的指针 或者说常以它为基址来访问内存 ECX 计数器 Counter 寄存
  • win32汇编寄存器汇总

    32位CPU所含有的寄存器有 xff1a 4个数据寄存器 EAX EBX ECX和EDX 2个变址和指针寄存器 ESI和EDI 2个指针寄存器 ESP和EBP 6个段寄存器 ES CS SS DS FS和GS 1个指令指针寄存器 EIP 1
  • 汇编指令ebp与esp的关系与作用

    可以看到 xff0c 初始情况下 xff0c ebp此时值为0012FEDC xff0c 也就是栈帧的地址 xff0c 而栈顶地址esp值为0012FDFC 可以看到两个值有一定的关系 而 帧指针 的地址较高 然后我们让它执行前两句 xff
  • win32 汇编基础概念整理

    一 关于寄存器 寄存器有EAX EBX ECX EDX EDI ESI ESP EBP等 xff0c 似乎IP也是寄存器 xff0c 但只有在CALL RET在中会默认使用它 xff0c 其它情况很少使用到 xff0c 暂时可以不用理会 E
  • 汇编中的寻址方式

    存储器 存储器 xff08 Memory xff09 是现代信息技术中用于保存信息的记忆设备 其概念很广 xff0c 有很多层次 xff0c 在数字系统中 xff0c 只要能保存二进制数据的都可以是存储器 xff1b 在集成电路中 xff0
  • x86的32位汇编快速入门

    本文描述基本的32位X86汇编语言的一个子集 xff0c 其中涉及汇编语言的最核心部分 xff0c 包括寄存器结构 xff0c 数据表示 xff0c 基本的操作指令 xff08 包括数据传送指令 逻辑计算指令 算数运算指令 xff09 xf
  • 80x86汇编指令详解

    80x86指令系统 xff0c 指令按功能可分为以下七个部分 1 数据传送指令 2 算术运算指令 3 逻辑运算指令 4 串操作指令 5 控制转移指令 6 处理器控制指令 7 保护方式指令 3 3 1数据传送指令 数据传送指令包括 xff1a
  • 汇编中addr和offset

    汇编中addr和offset的异同点 xff01 xff01 xff01 一 相同点 1 addr 和 offset 操作符都是获得操作数的偏移地址 xff1b 2 addr 和 offset 的处理都是先检查处理的是全局还是局部变量 xf
  • 汇编语言,数据段中,标号前面加不加offset有什么区别?

    data segment string db 40h dup 0 string 1 db 39 Input characters 39 0dh 39 39 data ends 那么 xff0c mov bx string 和 mov bx
  • SD-WAN如何推动企业上云

    企业上云是指企业将其业务系统 应用程序 数据等资源迁移到云端 xff08 云服务提供商的数据中心 xff09 xff0c 以实现更高效 灵活 安全 可靠的信息化运营和服务 麦肯锡公司发布了名为 企业上云2 0 xff1a 加速数字化转型 x
  • nvm常用命令,配置镜像

    1 配置镜像 阿里云 nvm npm mirror https npmmirror com mirrors npm nvm node mirror https npmmirror com mirrors node 腾讯云 nvm npm m
  • 汇编语言中MOV和OFFSET指令的两个问题?

    xff08 1 xff09 往段寄存器送段地址时要写成 MOV AX DATA MOV DS AX 不能写成 MOV DS DATA 这是为什么 xff1f 有人说由于段寄存只能进行16位的读写 xff0c 因此需要用ax来倒一下 xff0
  • C++动态链接库的制作

    输入函式 declspec dllimport 与输出函式 declspec dllexport 有什么区别呢 xff1f 我知道他们不同 xff0c 但差别在哪呢 我用的全是 declspec dllexport xff0c declsp
  • C#调用C++函数来与串口通信

    前些日子帮朋友写个小软件 xff0c 要求用C 来实现主程序 xff0c 主要的功能是与一些通信设备打交道 xff0c 当然就是通过串口了 xff0c 以十进制发送和读取串口 的数据 xff0c 考虑到C 调用API并没有C 43 43 来
  • c++获取系统错误提示!getLastError()

    void showError LPVOID lpMsgBuf FormatMessage FORMAT MESSAGE ALLOCATE BUFFER FORMAT MESSAGE FROM SYSTEM FORMAT MESSAGE IG
  • c++串口操作

    0 前言 做串口方面的程序 xff0c 使用CreateFile打开串口通信端口 在对串口操作之前 xff0c 需要首先打开串口 使用C 43 43 进行串口编程 xff0c 如果采用VS开发 xff0c 则可以直接借助于串口通信控件来操作

随机推荐

  • vs环境下C++dll生成和使用(基础篇)

    动态库和静态库 xff1a 动态库 xff1a 全名动态链接库 xff0c 用于将你的函数封装 xff0c 让别人只能调用 xff0c 不能看你的实现代码 由引入库和dll组成 xff1a 引入库包含导出的函数和变量名 xff0c dll包
  • #ifndef.#define, #endif 的用法

    文件中的 ifndef define endif 很关键 xff0c 是为了避免多重包含 xff0c 比如如果两个C文件同时包含同一头文件 xff0c 那么就会出现问题 xff0c 所以使用这种方法可以有效避免这种情况 一般用法 xff1a
  • 关于.NET编译的目标平台(AnyCPU,x86,x64)

    在VisualStudio中项目平台属性包含x86 x64 AnyCPU三个选项 xff0c 之前的项目中并没有特别去关注这一点 xff0c 最近的项目中涉及到了在不同平台运行的问题 xff0c 所以专门了解并整理了这方面的知识 x86 x
  • IP地址不是唯一的吗?为什么路由器的IP地址都是这样的呢?

    路由器同时连接外部网络和内部网络 xff0c 外部网络的IP是都不一样 xff0c 但内部网络的IP xff0c 就没有问题 xff0c 但内部网络所有设备的IP也不能相同 域名是对你的网站存放主机的ip的解析 xff0c 可以理解为你的别
  • HTTP简介

    HTTP协议是Hyper Text Transfer Protocol xff08 超文本传输协议 xff09 的缩写 是用于从万维网 xff08 WWW World Wide Web xff09 服务器传输超文本到本地浏览器的传送协议 H
  • OMF和flash_recovery_area的关系!

    在OMF出现之前 9i R1 oracle db的文件 xff0c 主要指dbf xff0c redo xff0c ctl是通过os管理的 xff0c 为了简化对数据库文件的管理 xff0c oracle引入了OMF 通过omf创建的dbf
  • asp.net发布网站的详细步骤

    1 用VS2013打开解决方案 2 选中解决方案 xff0c 点击鼠标 右键 gt 从弹出对话框中 xff0c 选择 清理解决方案 3 待第2步 清理解决方案 结束后 xff0c 选中 解决方案 gt 点击鼠标 右键 gt 在弹出对话框中
  • 域名和IP地址是一回事吗?建网站要买域名还要买IP地址吗?

    去年我在网通花了150元买了一个域名 xff0c 他们在登记单上的域名费一栏填了150元 xff0c 登记单上还有IP使用费一栏他们什么也没有填写 xff0c 如果域名与IP地址是同一个项目 xff0c 是一回事 xff0c 他们不是在重复
  • IIS服务器绑定域名问题

    不能将内网的IP地址和互联网的域名绑定 xff0c 如果这样做 xff0c 那么只有内网可以通过域名访问网站 xff0c 外网无法通过域名访问网站 域名ip地址绑定 xff0c 必须是固定ip地址 xff0c 还必须是公网ip地址 需要公网
  • asp网站配置错误解决汇总_1

    由于扩展配置问题而无法提供您请求的页面 如果该页面是脚本 请添加处理程序 错误 xff1a HTTP 错误 404 3 Not Found 由于扩展配置问题而无法提供您请求的页面 如果该页面是脚本 xff0c 请添加处理程序 如果应下载文件
  • 如何在本地服务器绑定域名及host文件的使用说明

    在本地服务器绑定域名 xff1a 打开C WINDOWS system32 drivers etc 目录下面的hosts文件 xff0c 把127 0 0 1 localhost复制 xff0c 粘贴到文件的最后 xff0c 然后把loca
  • 内网访问不到内网网站问题和不用端口号访问网站问题

    windows防火墙 xff0d 高级 xff0d 网络连接设置 xff0d 设置 xff0d 服务 xff0d web服务器 xff0c 在这个位置可以打开80端口 怎样让自建网站在内外网访问时不用加端口名 怎样让自建网站在内外网访问时不
  • vs2010本地调试打不开网页

    在C WINDOWS system32 drivers etc这个文件夹下 找到Hosts文件 用记事本打开 localhost设为127 0 0 1
  • asp文件上传和下载

    ASP NET实现上传文件 前端 界面十分简单 xff0c 只是放一个file类型的 lt input gt 和一个按钮 xff0c 并且为这个按钮添加点击事件 xff08 btnUpLoad Click xff09 xff0c 如下图 x
  • 安装包,创建快捷方式,开机启动项,配置文件参数覆盖窗体类库

    using IWshRuntimeLibrary using System using System Collections Generic using System ComponentModel using System Data usi
  • C#程序以管理员权限运行

    C 程序以管理员权限运行 在Vista 和 Windows 7 及更新版本的操作系统 xff0c 增加了 UAC 用户账户控制 的安全机制 xff0c 如果 UAC 被打开 xff0c 用户即使以管理员权限登录 xff0c 其应用程序默认情
  • C#修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限

    写在前面 在windows系统中 xff0c c盘中的目录权限比较高 xff0c 有时制作安装包的时候 xff0c 默认的安装路径就是在c盘 xff0c 但对运行可执行文件 xff0c 有时候需要为其添加完全控制权限 xff0c 或者读写权
  • ASP.NET简易教程-页面布局

    页面布局 网上有太多介绍 xff0c 个人觉得不错的有 Div 43 CSS布局大全 xff0c 有PDF版本 xff0c 可下载离线观看 xff0c 别人总结的一个文档 xff0c 简洁易懂 xff0c 学起来不费劲 xff0c 花时间不
  • File.Create创建文件后,需要释放…

    if File Exists SavePath File Create SavePath Close
  • 最全CSS各种布局详解

    一 单列布局的实现 1 单列布局中最常用的水平居中的四种方法 同时设置父元素和子元素的样式 xff1a 父元素使用text align实现 xff0c 子元素使用inline block 这里宽高背景只是为了展示 parent text a