zoukankan      html  css  js  c++  java
  • CSS 水平居中

    零散的知识不整理进入自己的知识框架太容易忘,对于CSS脑子里零零散散的!整理自勉!

    水平居中

    块级元素水平居中

    margin:auto

    此居中的方法前提为居中块级元素宽度必须固定才可设置auto自动计算左右补白

       .block1{
            height: 300px;
             600px;
            background: black;
        }
        
        .block2{
            height: 100px;
             100px;
            margin: auto;
            background: red;
        }
     <div class="block1">
        <div class="block2"></div>
     </div>
    

    clipboard.png

    可见块2的margin-left,margin-right设置为auto后实现水平居中,但是margin-top,margin-bottom设置为auto确并不能垂直居中!
    特点:浏览器兼容性强,但扩展性差,无法自适应未知项情况

    text-align:center

    text-align 属性规定元素中的文本的水平对齐方式!显然不是用来给块级元素水平居中的,不过可设置块级元素为行内块级元素时便可实现水平居中

     .block1 {
            height: 300px;
             600px;
            background: black;
            text-align: center;
        }
        
        .block2 {
            height: 100px;
            display: inline-block;
            background: red;
        }
    <div class="block1">
        <div class="block2">11111111111</div>
    </div>
    

    clipboard.png

    特点:扩展性强,但需要额外处理inline-block的浏览器兼容性
    注:该种方法可以让display为inline/inline-block/inline-table/inline/flex值的子元素居中

    position:absolute

    通过设置子元素为绝对定位元素还有left和margin-left的值可以达到居中效果

     .block1 {
            height: 300px;
             600px;
            position: relative;
            background: black;
        }
        
        .block2 {
            height: 100px;
             100px;
            position: absolute;
            left: 50%;
            margin-left: -50px;
            background: red;
        }
     <div class="block1">
        <div class="block2"></div>
     </div>
    
    

    clipboard.png

    特点: 必须知道子元素的宽度才能设置左边补白的负值
    注:网上有说法可以通过和float来实现不定宽度块级元素居中(还未深究)

    CSS3 flex实现水平居中方法

    Flex主要用来布局! Flex布局,可以简便、完整、响应式地实现各种页面布局。后面整理flex布局笔记!

      .block1 {
            height: 300px;
             600px;
            display: flex;
            justify-content: center;
            background: black;
        }
        
        .block2 {
            height: 100px;
            background: red;
        }
      <div class="block1">
        <div class="block2">1123123</div>
     </div>
    

    clipboard.png

    特点:实现便捷,扩展性强但兼容需要考虑

    CSS3 fit-content

    fit-content可以实现元素收缩效果的同时,保持原本的block水平状态,于是,就可以直接使用margin:auto实现元素向内自适应同时的居中效果了

      .block1 {
            height: 300px;
             600px;
            background: black;
        }
        
        .block2 {
            height: 100px;
             -webkit-fit-content;
             -moz-fit-content;
             fit-content;
            margin-left: auto;
            margin-right: auto;
            background: red;
        }
     <div class="block1">
        <div class="block2">1123123</div>
     </div>
    

    clipboard.png

    特点:扩展性强,但兼容性差;

    float

    浮动居中有待好好研究!
    特点:兼容性强,扩展性强!但实现原理较复杂

  • 相关阅读:
    Intellijidea建javaWeb以及Servlet简单实现
    PHP关于文件与文件夹(1) 写入文件 文件权限 三、锁定文件
    mysql 时间戳格式化函数from_unixtime使用说明
    Ansible 2.0公布
    如何获取板子上独有的ID号EXYNOS4412/Imx6ul【转】
    2.7 xargs和exec详解【转】
    __setup 在内核中的作用【转】
    Linux __setup解析【转】
    c语言中 %p的含义【转】
    函数 devm_kzalloc()【转】
  • 原文地址:https://www.cnblogs.com/10manongit/p/13035365.html
Copyright © 2011-2022 走看看