pc端兼容 、两栏布局、三栏布局

一、 pc端兼容性问题解决

1:常见兼容性问题(不区分浏览器)
图片下间隙问题
现象:图片和父盒子有3px的间隙,并且间隙会随着字体大小发生变化,字体越大,间隙越大。
原因:图片具有文本属性,文本会以基线对齐,所以导致文字在下,图片在上,还有间隙。
解决方法:
1.设置字体大小为0px;
2:将图片转换为块元素(彻底取消掉基线对齐方式)
3:文本垂直方向对齐方式调整 vertical-align:top/middle/baseline(基线)/bottom.
2.行内元素并排中间间隙问题
解决方法:float:left、right or 将其利用display:block 转换为块元素。
3.文本框与提交(普通)按钮对不齐现象
在这里插入图片描述
1.不用按钮 ,用a标签模拟按钮 js提交。
2. 按钮元素套 div
<div> <input type="button" value="登录"></div>
3.内减input元素的padding和border值
``

ie浏览器常见兼容性问题

1.ie8及其以下,图片外套a超链接时图片会有默认边框 (100%)

   ` <a><img src=""></a>

img {
    verticla-align:middle/top/bottom; //取消图片下间隙  or display:block
    border:none; // 取消ie浏览器下图片边框
}`

== 解决方法: 设置img标签 border:none==

2:ie6下小高度问题(不超过10px高度的盒子 线)

原因: ie6 有默认的行高 大约 10px+ 盒子被撑起来

解决方案:

 line-height:0;
  font-size:0;
  overflow:hidden;

3.css hack

条件hack(html结构) ie10 +废除条件hack 性能不好
只有ie浏览器能看到这个元素

   ****属性hack (单属性)****
    —属性名:属性值 ; ie6 及其以下  浏览器会识别此属性
     * 属性名:属性值;ie7及其以下 会识
     \0  尾缀  属性名:属性值\0;   ie8-ie 识别

选择符级 hack (类样式)

      * html .box {}  .box 只在ie6以及更早
* + html .box {}  .box ie7以及更早浏览器识别

二。经典布局

1: 两列自适应
在这里插入图片描述

          <style>
        * {
            padding: 0;
            margin: 0;
        }
        .container {
            /* overflow: hidden; */
            /* position: relative; */
            width: 100%;
            height: 300px;
            background-color: red;
        }
        .col1 {
         
            width: 200px;
            height: 300px;
            background-color: blue;
           /* position: absolute;
           left: 0px;
           top:0px; */
           float: left;

        }
        .col2 {
            width: 100%;
            height: 300px;
            background-color: yellowgreen;
            /* padding-left: 200px; */
           
        }
        .box {
            width:25%;
            height: 100px;
            background-color: purple;
            float:  left;
            margin-left: 30px;
        }
    
    
    </style>
</head>
<body>
        <!-- 容器  最外层布局容器container -->
    <div class="container">
        <!-- col 列 -->
        <div class="col1">左侧 固定宽度 </div>
        <div class="col2"> 
            <div class="box"></div>
           
            
            
            自适应: 随着屏幕宽度而自动进行宽度调整  % 
            <div style="clear: both"></div>
        </div>
            <div style="clear: both"></div>
    </div>
</body>
</html>

三列自适应(原理:负外边距+浮动+相对定位实现效果)在这里插入图片描述

1:中间盒子放在结构的第一位

圣杯布局
利用内边距去实现内容放置
因为超出浏览器宽度  所以左浮后自动换行

 <style>
    * {
        padding: 0;
        margin: 0;
    }
    .c {
      
        /* 可以300px 不能小于 保持300px */
        min-height: 300px;
        height: auto;
        padding: 0px 200px;
    }
    .left,.right {
        width: 200px;
        height: 300px;
        
    }
    .left {
        background-color: aqua;
        float: left;
        margin-left: -100%;

        position: relative;
        left:-200px;
    }
    .right {
        background-color: darkred;
        float: left;
        margin-left: -200px;
        position: relative;
        right: -200px;
    }
    .center {
        width: 100%;
        height: 300px;
        background-color: yellowgreen;
        float: left;
    }
    </style>
</head>
<body>
    <div class="c">
          <!-- 100% -->
          <div class="center">中间盒子</div>
      
        <!-- 固定宽度 -->
        <div class="left">左列</div>
     
      
        <div class="right">右列</div>

        <div style="clear:both"></div>
    </div>
</body>
</html>

**
`

        <div class="inner"> 中间盒子</div>
          
       
    </div>
  
    <!-- 固定宽度 -->
    <div class="left">左列</div>
 
  
    <div class="right">右列</div>

    <div style="clear:both"></div>
</div>
`

双飞翼布局

利用外边距去实现内容放置
**

<style>
    * {
        padding: 0;
        margin: 0;
    }
    .c {
      
        /* 可以300px 不能小于 保持300px */
        min-height: 300px;
        height: auto;
     
    }
    .left,.right {
        width: 200px;
        height: 300px;
        
    }
    .left {
        background-color: aqua;
        float: left;
        margin-left: -100%;
      
    }
    .right {
        background-color: darkred;
        float: left;
        margin-left: -200px;
       
    }
    .center {
        width: 100%;
        height: 300px;
        background-color: yellowgreen;
        float: left;
    }
    .inner {
        margin: 0px 200px;
    }
    </style>
</head>
<body>
    <div class="c">
          <!-- 100% -->
          <div class="center">
              <!-- inner用来装内容  -->

            <div class="inner"> 中间盒子</div>
              
           
        </div>
      
        <!-- 固定宽度 -->
        <div class="left">左列</div>
     
      
        <div class="right">右列</div>

        <div style="clear:both"></div>
    </div>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用flex实现两栏布局,你可以使用flex布局的属性来实现。具体的实现方式有多种,以下是其中的一种方法: 首先,在父元素上应用flex布局属性,比如设置display为flex,这样父元素的子元素就可以通过flex属性进行布局。 然后,设置左边元素的固定宽度,可以使用flex属性中的flex-basis来指定宽度,比如设置为200px。 接着,设置右边元素的flex属性为1,这样它会自动填充剩余的空间。 最后,根据需要设置元素的高度和背景颜色等样式。 以下是一个使用flex实现两栏布局的示例代码: ```html <div class="outer"> <div class="left"></div> <div class="right"></div> </div> ``` ```css .outer { display: flex; height: 100px; } .left { width: 200px; height: 100%; background: lightcoral; } .right { flex: 1; height: 100%; background: lightseagreen; } ``` 这样,左边的元素会固定宽度为200px,右边的元素会自动填充剩余的空间。你可以根据实际需求调整元素的高度和样式。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [实现常用的两栏布局(左侧固定+右侧自适应)以及三栏布局(圣杯布局和双飞翼布局)](https://blog.csdn.net/hzy199772/article/details/125639600)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [经典布局 (flex和传统两种实现) 左右两栏式](https://blog.csdn.net/m0_49515138/article/details/129136780)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值