美文网首页
三、CSS布局

三、CSS布局

作者: Love小六六 | 来源:发表于2018-03-07 00:30 被阅读0次

常用布局方法

  • table表格布局
  • float浮动+margin
  • inline-block布局
  • flexbox布局

表格布局

设定元素 display:table,display:table-row,display:table-cell,可模拟出表格的行和单元

盒模型

设定的宽度和高度只对content生效,盒子占用的空间是margin+border+padding+content


display/position

  • 确定元素的显示类型
    • block 有独立宽高。默认占据一行
    • inline 像文本一样,不会有独立宽高
    • inline-block 对外inline,对内block,可以设置宽高,但是和别人在一行,可以通过vertical-align修改和别人的对齐方式
  • 确定元素的位置
    • static 按照文档流布局
    • relative 相对定位,偏移相对元素本身,不会改变占据的空间
    • absolute 绝对定位,脱离文档流,它相对于最近的absolute/relative进行定位
    • fixed 相对于可视区域固定
  • 层叠
    • 默认按照先后顺序层叠
    • z-index设置层叠(定位为absolute/relative/fixed可设置,值越大,越在上,用于遮罩等)

flexbox布局

  • 弹性盒子
  • 盒子本身就是并列的
  • 指定宽度即可

float布局

  • 元素浮动,脱离文档流,但不脱离文字流(如图所示,两个元素重叠,但是文字不会占据float的元素位置---形成文字环绕效果)


  • 对自身的影响

    • 形成块(BFC)---行内元素也会变得可以设置宽高
    • 位置尽量靠上
    • 位置尽量靠左(float:left)
    • 宽度足够尽量往左,不够就会往下掉
  • 对兄弟的影响

    • 上面贴非float元素
    • 旁边帖float元素
    • 不影响其他块级元素位置
    • 影响其他块级元素内部文本
  • 对父级元素的影响

    • 从布局上"消失"

    • 高度塌陷

      • 父元素加over-flow:auto/hidden
      • 通过父元素增加after伪元素
      container::after{
          content:'';
          display:block;
          visibility:hidden;
          clear:both
      }
      
  • float两列/三列布局

// 两栏布局
.left{
    width:200px;
    float:left;
    height:800px
}
.right{
    width:100%
    heigth:800px;
    margin-left:200px
}
// 三栏布局
.left{
    width:200px;
    float:left;
    height:800px
}
.right{
    width:200px
    heigth:800px;
    margin-left:200px
}
.middle{
    width:100px;
    margin-left:200px;
    margin-right:200px;
    heigth:800px
}
//浮动先行
<div class="left"></div>
<div class="right"></div>
<div class="middle"></div>

inline-block布局

  • 像文本一样排列block
  • 没有清除浮动等问题
  • 需要处理间隙(因为对外inline,就像文字,文字和文字之间就会有间隙)

解决方案

  1. 父元素font-size设置为0,子元素重新设置font-size
.container{
    width:800px;
    height:200px;
    font-size:0;
}
.left{
    font-size:14px;
    background:red;
    display: inline-block;
    width:200px;
    height:200px;
}
.right{
    font-size:14px;
    background:blue;
    display: inline-block;
    width:600px;
    height:200px;
}
<div class="container">
    <div class="left">
        左
    </div>
    <div class="right">
        右
    </div>
</div>

2.子元素不加空白

<div class="container">
    <div class="left">
        左
    </div><div class="right">// 重点
        右
    </div>
</div>

响应式布局和设计

  • 在不同设备上正常使用
  • 一般主要处理屏幕大小问题
  • 主要方法
    • 隐藏+折行+自适应空间(pc上广告栏侧边栏在手机端隐藏;折行就是pc里面一行内容,在移动端分多行)
    • rem
    • viewport
    • media query
// 第一步
<meta name="viewport" content="width=device-width, initial-scale=1.0">

// 媒体查询
@media (max-width: 640px){
    .left{
        display: none;
    }
}

// rem单位,一个rem等于设置的font-size的值
// 通过媒体查询对不同大小屏幕设定不同html的font-size值
html{
    font-size: 20px;// 1rem
}
// 范围大的放在上面
@media (max-width: 375px){
    html{
        font-size:24px;
    }
}
@media (max-width: 320px){
    html{
        font-size:20px;
    }
}

相关文章

  • CSS布局&CSS居中&媒体查询

    关于CSS布局&CSS居中&媒体查询三者的见解 css布局: 单栏布局: 分为最大宽度和固定宽度,80%以上的页面...

  • day04_CSS基础(4)

    一、CSS布局种类 网页布局的核心——就是用 CSS 来摆放盒子位置。CSS布局有三种机制,分别为普通流、浮动、定...

  • CSS---浮动

    1. 浮动(float) 1.1 CSS 布局的三种机制 网页布局的核心——就是用 CSS 来摆放盒子。 CSS ...

  • 【CSS】三、常见属性

    CSS 一、使用CSS样式的方式CSS 二、定义样式表CSS 三、常见属性CSS 四、DIV+CSS布局## 三、...

  • CSS布局技巧总结

    目录 详解 CSS 七种三栏布局技巧 16种方法实现水平居中垂直居中 详解 CSS 七种三栏布局技巧 三栏布局,顾...

  • 特殊布局方法

    关于圣杯布局和双飞翼布局:CSS布局之--淘宝双飞翼布局双飞翼布局介绍CSS控制自适应宽度两三栏布局圣杯布局的实现...

  • CSS经典布局

    CSS经典布局 本文主要对一些常见的CSS布局问题进行总结,涉及三栏布局、负margin、清除浮动、居中布局、Fl...

  • CSS之浮动元素影响清除方法归纳

    前言 浮动是CSS的三种基本定位机制之一,在现在网页的DIV+CSS基本布局中,无论是两列布局,三列布局,多列布局...

  • 文章收藏

    CSS布局 CSS布局方案整理

  • css

    css基础css选择器css常见样式1css常见样式2CSS布局上CSS布局下flex布局塔防小游戏flex布局青...

网友评论

      本文标题:三、CSS布局

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