继续CSS的常见使用。


例1. 输出一个购物车效果的text对话框

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .inp{
            border: 0;
            border-left: 1px solid #dddddd;
            border-right: 1px solid #dddddd;
            height: 25px;
            margin: 0;
            padding: 0;
            float: left;
        }
        .sp{
            display: inline-block;
            height: 25px;
            width: 25px;
            text-align: center;
            line-height: 25px;
            float: left;
        }
    </style>
</head>
<body>
    <div style="border: 1px solid #dddddd;display: inline-block;">
        <div class="sp">-</div>
        <input class="inp" type="text" />
        <div class="sp">+</div>
    </div>
</body>
</html>

wKiom1h9SoSyWG9mAAAsGC0m3bE584.jpg



例2 如果图片挂了,可以通过<alt>自动用文字显示内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        img{
            border: 0;
        }
    </style>
</head>
<body>
    <div>
        <div class="item">
            <a href="http://www.etiantian.org">
                <img src="2.jp" alt="图片">
            </a>
        </div>
    </div>
</body>
</html>
    
效果图

wKioL1h9SySBvxqkAAAkl8VGUpI346.jpg



例3 设置input标签的默认值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
        <textarea>123</textarea>
        <input type="text" value="222"/>
        <select>
            <option>上海</option>
            <option selected="selected">广州</option>
            <option>北京</option>
        </select>
        男:<input type="radio" name="g1"  />
        女:<input type="radio" name="g1" checked="checked"/>
        <input type="checkbox" name="c1" checked="checked" />
        <input type="checkbox" name="c1"  />
        <input type="checkbox" name="c1"  checked="checked"/>
        <input type="checkbox" name="c1" />
</body>
</html>

wKioL1h9UpuA0mNUAAA0enPK9HU848.jpg


例4 !important 强制覆盖, 当冲突时,以!important的设置为准

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .hide{
            display: none !important;
        }
        .c1{
            color: red !important;
        }
        .c2{
            color: green;
        }
    </style>
</head>
<body>
    <div class="c1 c2">red</div>
</body>
</html>


wKiom1h9U7qSQBQSAAAg167KXI0941.jpg


例5 class选择器还可以进一步根据属性选择,比如只有class='c1',alex='a'的标签才是红色

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .c1[alex='a']{
            color: red;
        }
    </style>
</head>
<body>
    <div>
        <div class="c1" alex="a">1</div>
        <div class="c1" alex="b">2</div>
        <div class="c1">3</div>
        <div class="c1" alex="a">4</div>
    </div>
</body>
</html>

wKiom1h9VF7AgtGRAAAhrH9y2c0302.jpg


例6 当一个标签使用fixed的时候,他会和没有使用的重叠在一起,因此在.pg-body里面指定了margin-top 48px (第一个标签的高度)以便隔开

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .pg-header{
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            height: 48px;
            background-color: #2459a2;
        }
        .pg-body{
            height: 2000px;
            margin-top: 48px;
        }
    </style>
</head>
<body>
    <div class="pg-header">header</div>
    <div class="pg-body">body</div>
</body>
</html>

wKioL1h9V5CjZdnAAAAvVfz58zg678.jpg


例7 利用外部relative,内部absolute的特性在input后面加个小图标

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .icon-name{
            background-p_w_picpath: url('i_name.jpg');
            height: 16px;
            width: 16px;
            display: inline-block;
        }
        .icon-pwd{
            background-p_w_picpath: url('i_pwd.jpg');
            height: 16px;
            width: 16px;
            display: inline-block;
        }
    </style>
</head>
<body>
    <div style="width: 200px;position: relative">
        
        <input style="width: 180px;padding-right: 20px;" />
        <span class="icon-name" style="position: absolute;top:2px;right: 0;"></span>
    </div>
    <div style="width: 200px;position: relative">
        <input style="width: 180px;padding-right: 20px;" />
        <span class="icon-pwd" style="position: absolute;top:2px;right: 0;"></span>
    </div>
</body>
</html>

wKioL1h9XXuTkUbvAAAkkptZgOI242.jpg


例8 after和 before的使用

当我们使用hover,after或者before的时候,当选择了对应的class,他会自动应用;一个常见场景是外部的div没有float,而内部的div有float,导致外部不能撑开,这个时候可以考虑在后面加个隐形的点,然后设置clear:both来取消漂浮


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .c1:hover{
            background-color: #2459a2;
        }
        .c2:before{
            content: '666';
        }
        .c2:after {
            content: '777';
        }
        .left{
            float: left;
        }
        .item{
            background-color: red;
        }
        .clearfix:after{
            content: '.';
            clear: both;
            display: block;
            visibility: hidden;
            height: 0;
        }
    </style>
</head>
<body>
    <div class="c1">ddd</div>
    <div class="c2">888</div>
    <div style="background-color: red" class="clearfix">
        <div class="left" style="height: 100px;background-color: green">1</div>
        <div class="left">2</div>
    </div>
</body>
</html>

wKioL1h9areBeIb-AAA4XYHITK8566.jpg

如果不使用clearfix,那么外层的div其实被绿色部分撑住了,不会包括2;可以在F12下面选中div查看范围来确认

wKiom1h9arfAZunmAAAj1PdHXXI017.jpg


列9 巧妙的设置小三角,注意inline-block的使用,把块级标签当做内联标签使用,同时又能设置高度

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .icon{
            display: inline-block;
            border-top: 15px solid green;
            border-right: 15px solid red;
            border-bottom: 15px solid transparent;
            border-left: 15px solid transparent;
        }
    </style>
</head>
<body>
    <div class="icon"></div>
</body>
</html>

wKioL1h9a8-hgMCrAAAhnfT-ilg044.jpg

wKiom1h9a8_QhrjwAABIrPPEf5U528.jpg