zoukankan      html  css  js  c++  java
  • 几个常见CSS错误和解决办法

    1.IE6下,当float存在时,margin双倍的问题

    20个常见CSS错误和解决办法

    解决方法:加display:inline;

    例:

    #content {
     

       float: left;
        500px;
        padding: 10px 15px;
        margin-left: 20px;
        display:inline;
    }

    2.克服盒子模型的hack

    原写法:

    #main-div{
     150px;
    border: 5px;
    padding: 20px;
    }
    
    修正后
    
    #main-div1{
     150px;
    }
    #main-div1 div{
    border: 5px;
    padding: 20px;
    }
    
    例如:
    
    <div id="main-div">1</div>
    <div id="main-div1"><div>2</div></div>
    见图:
    
    20个常见CSS错误和解决办法
    
    两者区别:1是把padding加到父层里,DIV的宽度是150+20+20
    
    2是把PADDING加到子层里,div的宽度是150.
    
    我习惯是用1的方法去自己计算宽高.
    
    3,4.最小高度(最小宽度)IE不识别的解决方法
    
    
    .container {
    20em;
    padding:0.5em;
    border:1px solid #000;
    min-height:8em;
    height:auto;
    }
    
    
    * html .container {
    height: 8em;
    }
    
    
    5.整块元素居中对齐的方法
    
    body{
    text-align: center;
    }
    #container
    {
    text-align: left;
     960px;
    margin: 0 auto;
    }
    
    先定义BODY中的文字整个居中text-align:center,再定义其中需要左对齐的子元素text-align:left;
    
    6.垂直居中的CSS
    
    #wrapper {
            530px;
            height:25px;
            background:url(container.gif) no-repeat left top;
            padding:0px 10px;
    }
    #wrapper p {
            line-height:25px;
    }
    
    适用单行文字,将height设成line-height同值
    
    7.固定宽度下几个LI元素float横排时,超出宽度限定的解决方法
    
    css:
    
    ul.listing{   margin:0;   400px; border:1px solid #000;} 
    
    ul.listing li{   list-style-type:none;   float:left;   margin:0 20px 0 0;   83px; border:1px solid red;}  
    
    ul.listing1{   margin:0 0 0 -20px;   420px; border:1px solid #000;} 
    
    ul.listing1 li{   list-style-type:none;   float:left;   margin:0 0 0 20px;   83px; border:1px solid red;} 
    
    例子:
    
    <ul class="listing">
    <li>第一句</li>
    <li>第二句</li>
    <li>第三句</li>
    <li>第四句</li>
    </ul>
    </div>
    <div>
    <ul class="listing1">
    <li>第一句</li>
    <li>第二句</li>
    <li>第三句</li>
    <li>第四句</li>
    </ul>
    图示:
    
    20个常见CSS错误和解决办法
    
    原理:
    
    用负margin的方法
    
    9.定位z-index
    
    z-index起作用的前提是,必须有position:absolute, position:fixed or position:relative这三种中的任一种属性.
    
    css:
    
    .relativeblock1 {
            position:relative;
            200px;
            height:80px;
            z-index:51;
    }
    .absoluteblock1 {
            position:absolute;
            left:10px;
            top:90px;
            40px;
            height:40px;
            z-index:1;
    }
    .relativeblock2 {
            position:relative;
            200px;
            height:80px;
            z-index:50;
    }
    例:
    
    <div class="relativeblock1">
            <div class="absoluteblock1"></div>
    </div>
    <div class="relativeblock2"></div>
    
    见图:
    
    20个常见CSS错误和解决办法
    
    按CSS来说,relativeblock2应该会盖上absoluteblock1,但实际正相反,是因为
    
    absoluteblock1的优先级别高于relativeblock2,他继承了absoluteblock1的z-index,虽然他自身的z-index值为1,但实际为51.1,当然高于relativeblock2的z-index:50.
    
    10.相对定位relative和绝对定位absolute的区别
    
     CSS:
    
    #redSquare
    {
    position: relative;
    bottom: 40px;
    right: 40px;
    }
    图例:
    
    20个常见CSS错误和解决办法
    
    11.绝对定位的应用
    
    css:
    
    #hang_tab {
    position: absolute;
    top: 7px;
    left: 0px;
     157px;
    height: 93px;
    }
    
    图例:
    
    20个常见CSS错误和解决办法
    
    13.正确消除浮动(float)的方法
    
    css:
    
    #container:after
    {
            content: ".";
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
    }
    
    #container
    {display: inline-block;}
    
    
    * html #container
    {height: 1%;}
    
    #container
    {display: block;}
    
    例图:
    
    20个常见CSS错误和解决办法
    
    经实现,用:after属性是为了消除float浮动(针对FIREFOX使用)时父层无法正确识别高度,复杂且不易记不,优点是不需要再写<div style="clear:both"></div>这样一个空层来撑起高度。
    
    15.如何处理圆角
    
    最简单的方法是用一张足够大的图,然后我该圆角标注
    
    html:
    
    <div class="roundBox">
      <p>beautifully-encapsulated paragraph</p>
      <div class="boxBottom"></div>
    </div>
    
    css:
    
    .roundBox {
      background:transparent url(roundBox.gif) no-repeat top left;
      340px;
      padding:20px;
    }
    .roundBox .boxBottom {
      background:white url(roundBox.gif) no-repeat bottom left;
      font-size:1px;
      line-height:1px;
      height:14px;
      margin:0 -20px -20px -20px;
    }
    
    实例:http://www.askthecssguy.com/examples/notchedcorners/index.html
    
    17.用label标签做表单(非table)
    
    精华html:
    
    <form method="post" action="contactengine.php">
        <label for="Name">Name:</label>
        <input type="text" name="Name" id="Name" />
    .....
    
    </form>
    
    css:
    
    label {
            float: left;
            text-align: right;
            margin-right: 15px;
             100px;
    }
    
    实例:http://css-tricks.com/nice-and-simple-contact-form/
    
    另一个:http://www.box.net/shared/1zbtouuwws
    
    
    20.用有背景图的hr做分隔线,适用所有浏览器的方法.
    因为hr自身的样式是一根黑线,所以让他自身的样式 隐藏,然后新写一个class="hr",让hr听他父层的话
    经验证这样写无意义,对于目前中国的网站来说,极少用到HR.

    =========================================================
    The CSS Class
    ====
  • 相关阅读:
    VS2008 Pocket PC 2003 SE仿真程序上网设置
    http请求头content-type详解
    gitLab介绍以及常用指令
    vue-cli + webpack 项目搭建
    uni-app中分页器(uni-pagination)的使用
    关于vue给对象动态添加属性页面不会动态更新的问题
    uni-app取消原生头部导航栏
    uni-app中原生头部导航栏图标事件的监听
    uni-app中原生头部导航栏图标的添加
    uni-app背景图片的引用问题
  • 原文地址:https://www.cnblogs.com/Bryran/p/3952897.html
Copyright © 2011-2022 走看看