• 自定义按钮~自适应布局~常见bug


    一、元件
    1. 自定义按钮
      可用button或a   display为 inline-block 方便设置格式,通过 padding,height,line-height,font-size设置按钮的大小
       1 <!DOCTYPE html>
       2 <html>
       3 <head>
       4     <title>BUTTON</title>
       5     <meta charset="utf-8">
       6     <style type="text/css">
       7         a {
       8             text-decoration: none;
       9         }
      10         span{
      11             display: inline-block;
      12             border-style: solid;
      13             border-width: 4px 4px 0;
      14             border-color: #fff transparent transparent;
      15             vertical-align: middle;
      16             margin-left: 3px;
      17         }
      18         .u-btn{
      19             display: inline-block;
      20             box-sizing: content-box;
      21             -moz-box-sizing: content-box;
      22             -webkit-box-sizing: content-box;
      23             padding: 4px 15px;
      24             margin: 20px;
      25             height: 20px;
      26             line-height: 20px;
      27             border: 1px solid #2b88bf;
      28             border-radius: 5px;
      29             background:linear-gradient(#6dbde4,#399dd8);
      30             font-size: 12px;
      31             color: #fff;
      32             cursor: pointer;
      33         }
      34         .u-btn:hover{
      35             background-color:#122772;
      36         }
      37     </style>
      38 </head>
      39 <body>
      40     <button class="u-btn">click</button>
      41     <a class="u-btn" href="#">click</a>
      42     <a class="u-btn" href="#">
      43         click
      44         <span></span>
      45     </a>
      46 </body>
      47 </html>
    2. 按钮组合
      灵活使用display  inline-block设置下拉列表
       1 <!DOCTYPE html>
       2 <html>
       3 <head>
       4     <title>按钮组合</title>
       5     <meta charset='utf-8'>
       6     <style type="text/css">
       7         span{
       8             display: inline-block;
       9             border-style: solid;
      10             border-width: 4px 4px 0;
      11             border-color: #fff transparent transparent;
      12             vertical-align: middle;
      13             margin: 0;
      14         }
      15 
      16         .u-btns{
      17             position: relative;
      18             display: inline-block;
      19             margin: 20px;
      20         }
      21         .u-btn{
      22             display: inline-block;
      23             float: left;
      24             padding: 6px 15px;
      25             margin: 0px;
      26             font-size: 12px;
      27             color: #fff;
      28             border: 1px solid #2b88bf;
      29             background:linear-gradient(#6dbde4,#399dd8);
      30             border-width: 1px 1px 1px 0;
      31             cursor: pointer;
      32         }
      33         button:first-child{
      34             border-radius: 5px 0 0 5px;
      35         }
      36         button:last-child{
      37             border-radius: 0 5px 5px 0;
      38         }
      39         ul{
      40             position: absolute;
      41             top: 13px;
      42             left: auto;
      43             right: 0px;
      44             padding: 0;
      45             display: inline-block;
      46             list-style-type: none;
      47             border: 1px solid #d0d0d0;
      48             border-radius: 5px;
      49         }
      50         li,a{
      51             height: 30px;
      52             line-height: 30px;
      53             text-decoration: none;
      54             font-family: Arial;
      55             font-size: 12px;
      56             color: #333; 
      57             cursor: pointer;
      58         }
      59         a{
      60             display: block;
      61             padding: 4px 8px;
      62             text-align: center;
      63         }
      64         li:empty{
      65             border-top: 1px solid #ddd;
      66             height: 5px;
      67             line-height: 5px;
      68             margin: 0px;
      69         }
      70         li:hover{
      71             background: #f7f7f7;
      72         }
      73     </style>
      74 </head>
      75 <body>
      76     <div class="u-btns">
      77         <button class="u-btn" type="button">click</button>
      78         <button class="u-btn" type="button">
      79             <span></span>
      80         </button>
      81         <ul>
      82             <li><a href="#">下拉式菜单项</a></li>
      83             <li><a href="#">下拉式菜单项</a></li>
      84             <li><a href="#">下拉式菜单项</a></li>
      85             <li></li>
      86             <li><a href="#">下拉式菜单项</a></li>
      87         </ul>
      88     </div>
      89 </body>
      90 </html>

    二、BUG

    1. 问题:如果参照物没有触发haslayout,那么在ie6中“绝对定位的容器”的left和bottom就会有问题

      解决方案:在“相对定位的父容器”上加入 zoom:1 来触发ie的haslayout即可解决

      小技巧:通常我们在设置一个容器为position:relative的时候,都会加上zoom:1来解决很多ie下的问题

    2. 问题:在ie67下,红色区域溢出,拖动垂直或水平滚动条时,红色区域不会动
      解决方案:只需要在有滚动条的容器上也设置相对定位即可。
    3. 问题:IE6下参照物宽高为奇数时,绝对定位元素设置了位置为0或100%时,仍会有1px的空隙
      解决方案:设为偶数
    4. 问题:浮动时margin加倍
      解决:设置为inline

    三、布局

    1. 全局自适应

      所有元素绝对定位,上下部固定高度,宽度100%,中间高度auto
      注意合并样式,精简代码
       1 <!DOCTYPE html>
       2 <html lang="en">
       3 <head>
       4     <meta charset="UTF-8">
       5     <title>全局自适应布局</title>
       6     <style type="text/css">
       7         div{
       8             position: absolute;
       9             left: 0px;
      10         }
      11         .hd,.foot{
      12             width: 100%;
      13             height: 100px;
      14         }
      15         .hd{
      16             top: 0px;
      17             background-color: #ccc;
      18         }
      19         .con-left,.con-right{
      20             top: 100px;
      21             bottom: 100px;
      22             height: auto;
      23         }
      24         .con-left{
      25             left: 0px;
      26             width: 300px;
      27             background-color: #b8d9e0;
      28         }
      29         .con-right{
      30             right: 0px;
      31             margin-left: 300px;
      32             background-color: #b8d9aa;
      33         }
      34         .foot{
      35             bottom: 0px;
      36             background-color: #ccc;
      37         }
      38     </style>
      39 </head>
      40 <body>
      41     <div class="hd"></div>
      42     <div class="con-left"></div>
      43     <div class="con-right"></div>
      44     <div class="foot"></div>
      45 </body>
      46 </html>
    2. 前自定义后跟随
      定义两层结构,利用magin的负值保持跟随者在尾部的空间
    3. 表头固定内容滚动的表格
      给内容设置最大高度值,超出时使用滚动条
      注意:overflow-y是用来给div进行裁剪的,所以tbody部分需要在div中
      table>head,div(table>tbody)
    4. 纯CSS手风琴
      通过列表显示图片,定义ul固定宽高,定义li

    如果您认为本文对得起您所阅读所花的时间,欢迎点击右下角↘ 推荐。您的支持是我继续写作最大的动力,谢谢 (●'◡'●)

    字节跳动职位长期内推,如有需求可发送简历至 lichaoran.cr@bytedance.com

  • 相关阅读:
    Java web 例4-7
    JavaScript初步+基本函数
    请求转发和重定向区别
    javaben的设计规则
    Java web 实验五 Servlet过滤器
    关于软件生命周期以及软件过程
    Java web outTime.jsp
    Java web 4-6 update_stu_1.jps
    include指令与动作,请求妆发等同于forward动作
    简单的购物车应用案例 相关代码2
  • 原文地址:https://www.cnblogs.com/chaoran/p/4781763.html
Copyright © 2020-2023  润新知