DAY3

CSS常用布局

  1. 什么是布局?

  2. 普通文档流

  3. 块级元素、行内元素

CSS flex 布局

  1. 什么是flex?

  2. Flex容器

  3. 常用属性

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width">
      <title>JS Bin</title>
    </head>
    <body>
      <div class="container">
        <div class="item item-one">1</div>   
        <div class="item item-two">2</div>  
        <div class="item item-three">3</div>  
        <div class="item item-four">4</div>  
        <div class="item item-five">5</div>  
      </div>
    </body>
    </html>
    .container{
      display:flex;
      border:1px solid #666;
      width: 450px;
    }
    .item {
      width:100px;
      background-color: #efef38;
      border:1px solid black;
      text-align:center;
      flex-shrink: 0;
    }
    .item-two {
     /*  剩余空间都给了2 */
     /* flex-grow:1; */
    }
    .item-three {
      /* 默认为一,必须先在item清零,溢出全部挤压在3*/
      flex-shrink:1;
    }
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width">
      <title>JS Bin</title>
    </head>
    <body>
      <div class="container">
        <div class="center"></div>
      </div>
    </body>
    </html>
    .container {
      border: 1px solid #666;
      width:100px;
      height:100px;
      display:flex;
     //使蓝色正方形在垂直和水平居中
      align-items:center;
      justify-content: center;
    }
    .center{
      width:32px;
      height:32px;
      background-color:blue;
    }

  4. 为什么使用flex

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width">
      <title>JS Bin</title>
    </head>
    <body>
      <div class="container">
        <div class="content">这是内容哈这是内容哈这是内容哈这是内容哈</div>
        <footer class="footer">这是底部</footer>
      </div>
    </body>
    </html>
    .container {
      border: 1px solid #666;
      width:300px;
      height:500px;
      display:flex;
     flex-direction:column;
    }
    .content{
      //使文章内容占据全部剩余空间,从而固定底部栏在最下面
      flex-grow:1;
    }
    .footer{
      background-color:#999;
    }

CSS定位

  1. 定位

    元素其实是使用 top、bottom、left 和 right 属性定位的。但是,除非首先设置了 position 属性,否则这些属性将不起作用。根据不同的 position 值,它们的工作方式也不同。                 relative:相对于父容器;absolute:相对于属性不为static的祖先定位;fixed:相对于视口窗口;  sticky:据用户的滚动位置进行定位。粘性元素根据滚动位置在相对(relative)和固定(fixed)之间切换。起先它会被相对定位,直到在视口中遇到给定的偏移位置为止 - 然后将其“粘贴”在适当的位置(比如 position:fixed)。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <style>
        .body{
            widdh:500px;
            height:200px;
            margin:0 auto;
        }
        dt{
            background-color:black;
            color:white;
            padding:10px;
            position:sticky;
            top:0;
            left:0;
            margin:1em 0;
        }
        dd{
            font-size: 300px;
        }
    </style>
    <h1>Sticky positioning</h1>
    <dl>
      <dt>A</dt>
      <dd>Apple</dd>
      <dd>Ant</dd>
        <dd>Apple</dd>
        <dd>Ant</dd>
        <dd>Apple</dd>
    
    </dl>
    <dl>
      <dt>B</dt>
      <dd>Blue</dd>
      <dd>Boy</dd>
        <dd>Blue</dd>
        <dd>Boy</dd>
        <dd>Blue</dd>
    
    </dl>
    </body>
    </html>

  2. 浮动

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width">
      <title>JS Bin</title>
    </head>
    <body>
      <div class="col">我在左边浮动我在左边浮动我在左边浮动我在左边浮动我在左边浮动</div>
      <div class="col">我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容
      我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容
      我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容
      我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容</div>
      <div class="col right">我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动我在右边浮动</div>
      
      <div class="no-float">我不想浮动</div>
      <div class="no-float-bottom">我也不想浮动</div>
      </body>
    </html>
    .col{
      width: 200px;
      float: left;
      margin-right:20px;
    }
    .right{
      float:right;
    }
    .no-float {
      /* 从当前位置开始清除浮动 */
      clear: left;
      border:1px solid #999;
    }
    .no-float-bottom {
      border: 1px solid #999;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值