美文网首页
html 和css

html 和css

作者: 不染事非 | 来源:发表于2019-04-25 20:24 被阅读0次
  • 页面布局
  • css 盒模型
  • BFC
1、 页面布局

假设高度已知,请写出三列布局,其中左右的各为300px,中间自适应,有四种方法

第一种方法 :浮动
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .left{
                background: red;
                width: 300px;
                height: 100px;
                float: left;
            }
            .comm{
                background: blue;
                height: 100px;
            }
            .right{
                background: green;
                width: 300px;
                height: 100px;
                float: right;
            }
        </style>
    <body>
           <div class="left"></div>
           <div class="right"></div>
           <div class="comm"></div>
    </body>
</html>
第二种方法 : 定位
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .left{
             width: 300px;
             height: 300px;
             position: absolute;
             left: 0;
             background: red;
         }
         .right{
             width: 300px;
             height: 300px;
             position: absolute;
             right: 0;
             background: hotpink;
             top:0;
         }
         .center{
             height: 300px;
             background: pink;
             padding:0 300px;
         }
        </style>
    <body>
      <div style="position: relative;">
            <div class="left"></div>
            <div class="center">
                    <h2>绝对定位解决方案</h2>
                    1.这是三栏布局的浮动解决方案;
                    2.这是三栏布局的浮动解决方案;
            </div>
            <div class="right"></div>
      </div> 
    </body>
</html>
第三种 flex布局
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .fa{
             display: flex;
             /* height: 300px; */
         }
         .center{
             flex: 1;
             background: hotpink;
         }
         .left{
             background: red;
             width: 300px;      
         }
         .right{
             background: pink;
             width: 300px;
         }
        </style>
    <body>
      <div class="fa">
                <div class="left"></div>
                <div class="center">
                    <h2>flex解决方案</h2>
                    1.这是三栏布局的浮动解决方案;
                    2.这是三栏布局的浮动解决方案;
                </div>
                <div class="right"></div>    
      </div> 
    </body>
</html>
第四种 网格布局(CSS最新增的,类似于bootstrap的栅格系统)
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
    fu{
        display: grid;
        grid-template-rows: 300px;
               grid-template-columns: 300px auto 300px;
    }
    .left{
        background: red;
    }
    .right{
        background: hotpink;
    }
    .center{
        background: pink;
    }
</style>
<body>
     <div class="fu">
                <div class="left"></div>
                <div class="center">
                    <h2>网格布局解决方案</h2>
                    1.这是三栏布局的浮动解决方案;
                    2.这是三栏布局的浮动解决方案;
                </div>
                <div class="right"></div>
        </div> 
    </body>
</html>

若高度不给,那么高度能自适应的只有 flex 布局和 表格布局,网格布局了,其他则不可以

2、css 盒模型

  • 有两种模型 标准模型 和 IE 模型
2.1、css如何设置这2种模型
  • box-sizing:border-box; IE模型
  • box-sizing:content-box; 标准模型(默认)
2.2 js如何设置获取盒模型对应的宽和高:
  • dom.style.width/height 这个只能取到内联样式的宽高
  • dom.currentStyle.width/height 拿到渲染后的宽高,但这个是IE支持的,其他不支
  • dom.getComputerStyle.width/height 拿到渲染后的宽高,兼容火狐
  • dom.getBoundingClientRect().width/height 这个也能拿到,有4个值,还 有2个是距离顶部和左边的距离

3、BFC(边距重叠解决方案)

3.1、什么是BFC
  • 块级格式化上下文 ,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用
3.2 原理
  • 如果一个元素符合了成为BFC的条件,该元素内部元素的布局和定位就和外部元素互不影响(除非内部的盒子建立了新的 BFC),是一个隔离了的独立容器
3.3 怎么创建BFC
  • 浮动元素,float 除 none 以外的值;
  • 绝对定位元素,position(absolute,fixed);
  • display 不为none;
  • overflow 除了 visible 以外的值(hidden,auto,scroll)
3.4、BFC有什么用
  • 解决塌陷
  • 清除浮动

4、如何实现不确定宽高的盒子上下左右居中

div{
      position:absolute;
      top:50%; //相对于父元素
      left:50%; //相对于父元素
      transform:translate(-50%,-50%); //相对于自己
   }

5、如何实现不确定宽高的图片上下左右居中

 img{
     position:absolute;
      top:0; /* 四周拉力相同 */
      right:0; /* 四周拉力相同 */
      bottom:0; /* 四周拉力相同 */
      left:0; /* 四周拉力相同 */
      margin:auto; /* 再设置 marign 自动 */
    }

6、纯css写倒三角的原理:

.kailong{
    width:0;
    height:0;
    border-right:50px solid transparent;
    border-left:50px solid transparent;
    border-bottom:50px solid red;
}

相关文章

网友评论

      本文标题:html 和css

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