美文网首页饥人谷技术博客
CSS-布局(float flex grid)

CSS-布局(float flex grid)

作者: 招投标秘籍 | 来源:发表于2021-01-25 23:32 被阅读0次

布局前言

我们前面已经学过了文档流和盒模型,今天就要开始学新的知识CSS布局,希望对大家有所帮助。

不同的布局什么时候用?

微信图片_20210125214228_副本.png

Float布局

布局实现的步骤

  1. 子元素加float:left和width
  2. 父元素加clearfix
  3. 写css的时候加
.clearfix:after{
 content:'';
 display:block;
 clear:both;
 }

举例如下:

<header class="clearfix">
        <body>
      <div class="loge">
        <img src="https://static.xiedaimala.com/xdml/cdn/assets/black-logo-6b90d5f6165754f30be3d8469256bc824371ae8deaefc286127fb7701b7b8dc5.png" alt="">
        </div>
        <ul class="clearfix nav">
         <li>首页</li>
        <li>课程</li>
        <li>优惠</li>
        <li>其它</li>
      </ul>
          </header>
      <div class="content clearfix">
        <aside></aside>
        <main></main>
        <div class="ad"></div>
      </div> 
      <div class="imagelist">
       <div class="x clearfix">
        <div class="image"></div>
       <div class="image"></div>
       <div class="image"></div>
       <div class="image"></div>
       <div class="image"></div>
       <div class="image"></div>           
       <div class="image"></div>
       <div class="image"></div>    
        </div>
        </div> 

 *{margin:0;padding:0; box-sizing: border-box;}

header{
  width:1024px;
}
ul{
  list-style:none;
}
img{
max-width:100%
}
.clearfix:after{
  content:'';
  display:block;
  clear:both;
}
.loge{
  background:grey;
  display:inline-block;
   float: left;
  margin:8px;
}
.loge>img{
height:26px;
vertical-align: top;
}
.nav{
float: right;
}
ul>li{
float:left;
padding:0.2em 0.5em;
line-height:32px;
}
ul{
display:inline-block;
}
header{
background: grey;
 color:white;
}
.content{
width:800px;
margin:0 auto;
  
}
.content>aside{
  width:100px;
  height:300px;

  float: left;
  background: #000;
}
.content>main{
  height:300px;
  width:500px;
  float: left;
  background: #123;
}
.content>.ad{
 height:300px;
 width:200px;
 float: left;
 background: #567;
}
.imagelist{
 outline:1px solid yellow;
  width:800px;
  margin-left:auto;
  margin-right:auto;
  margin-top:10px;
}
.imagelist> .x{
  margin-right:-12px;
}
.imagelist>.x>.image{
  outline:1px solid red;
  width:191px;
  height:191px;
  float:left;
margin:6px;
  background: #000;
margin-bottom:10px
}

效果图如下


image.png

flex布局

如何让一个元素变为flex元素

.contaier{
 display: flex;}

flex两大元素

image.png

flex的container的样式

  1. 改变items的流动方向
.container{
flex-direction:row(从左到右)/row-reverse(从右到左)/column(从上到下)/column-reverse(从下到上)
}
  1. 改变折行的方向
.container{
flex-wrap:wrap(折行)/nowrap(不折行)
}
  1. 改变主轴的方向
.container{
justify-content:flex-start/flex-end/flex-center/space-between
}
image.png
  1. 改变次轴方向
.container{
align-items:flex-start/flex-end/center/stretch
}
image.png

flex的items的样式

  1. flex-grow
  2. flex-shrink
    示例:
<body>
  <header class="header">
    <div class="logo">
      <img src="https://static.xiedaimala.com/xdml/cdn/assets/white-logo-1a762b425df663fbccee710fe08d66951cea2fbc0a0350f03446ab30462e739f.png" alt="">
    </div>
    <ul>
      <li>首页</li>
      <li>课程</li>
      <li>优惠</li>
      <li>关于</li>
    </ul>
  </header>
  <div class="content">
    <aside>一行有六个字</aside>
    <main></main>
    <div class="ad"></div>
  </div>
  
  <div class="imageList">
    <div class="x">
      <div class="image"></div>
      <div class="image"></div>
      <div class="image"></div>
      <div class="image"></div>
      <div class="image"></div>
      <div class="image"></div>
      <div class="image"></div>
    </div>
  </div>
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
ul,
ol {
  list-style: none;
}
img {
  max-width: 100%;
}
.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: grey;
  padding: 4px 0;
}
.logo {
  display: flex;
  align-items: center;
}
.logo>img {
  height: 26px;
  vertical-align: middle;
}
ul {
  display: flex;
}
ul>li {
  padding: 4px;
}
.content {
  display: flex;
  width: 800px;
  margin-left: auto;
  margin-right: auto;
}
.content>aside {
  background: #000;
  width: 200px;
}
.content>main {
  background: #666;
  height: 400px;
  flex-grow: 1;
}
.content>.ad {
  background: #999;
  width: 100px;
}
.imageList{
  width: 800px;
  margin-left: auto;
  margin-right: auto;
  margin-top: 10px;
  
}
.imageList > .x{
  display: flex;
  flex-wrap: wrap;
  margin-right: -6px;
  margin-left: -6px;
}

.image{
   width: 191px;
  height: 191px;
  background: grey;
  border: 1px solid red;
  margin-right: 6px;
  margin-left: 6px;
  margin-bottom: 10px;
}
image.png

grid布局(格子布局)

如何触发grid布局

.container{
display:gird/inline-gird
}

设置行和列

.container{
grid-template-columns:40px 50px auto 50px 40px;
grid-template-rows:25% 100px  auto;
}

如图


图片.png

具体内容的设置

.item{
grid-column-start:数字;
grid-column-end:数字;
grid-row-start:数字;
grid-row-end:数字;
}

本文为本人的原创文章,著作权归本人和饥人谷所有,转载务必注明来源.

相关文章

  • CSS-布局(float flex grid)

    布局前言 我们前面已经学过了文档流和盒模型,今天就要开始学新的知识CSS布局,希望对大家有所帮助。 不同的布局什么...

  • css Grid布局

    Grid布局 css的布局方式主要有三种:float&position布局、flex布局、grid布局。 floa...

  • 【融职培训】Web前端学习 第2章 网页重构16 grid布局

    一、grid布局概述 grid布局与flex布局对比 grid布局可以为网页提供更强大的布局功能,它与flex布局...

  • 强大的display:grid

    自从用习惯flex布局我基本已经不怎么使用float了。现在又出现了grid布局,就像flex的升级版,布局上十分...

  • css中常见的布局方式

    三栏布局 三栏布局是页面中比较常见的布局方式,也有好几种实现方式,分别是flex布局,grid布局,float布局...

  • updating...

    CSS 1、三栏布局问题(左右固定宽度 中间自适应) flex grid float + margin 2、CSS...

  • [2020-08-10]css3中的常用几种布局

    div的水平垂直居中 flex布局,使用display: flex实现水平垂直居中 grid布局 使用grid布局...

  • css布局

    一栏布局:float,flex两栏布局:float,flex三栏布局:float,flex风景如画读书这些年,人生...

  • px em rem vh vm

    后续补充:flex 布局 Grid 布局

  • Grid布局相关属性

    定义display:grid或inline-grid开启子元素的Grid布局。 不同于flex布局,grid布局是...

网友评论

    本文标题:CSS-布局(float flex grid)

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