zoukankan      html  css  js  c++  java
  • css3学习之--伪类与圆角

    随着css3.0的发布到逐渐完善,目前已经大部分浏览器已经能较好地适配,所以写一些css3的学习经历,分享心得,主要以案例讲解为主,话不多说,今天以css3的新增的“圆角”属性来讲解,基于web画一个“安卓机器人”。

    一.理解border-radius属性

    border-radius-top-left         /*左上角*/
    border-radius-top-right       /*右上角*/
    border-radius-bottom-right /*右下角*/
    border-radius-bottom-left   /*左下角*/
    //提示:按顺时针方式

    下面用几个实例来展示border-radius的具体用法。

    <style>
            .container{
                width: 600px;
                height: 600px;
                margin: 50px auto;
            }
            .res{
                width: 100px;
                height: 100px;
                background: #FF0000;
                border-radius: 10px;/*设置四个角的弧度为10px*/
                float: left;
                margin-left: 30px;
            }
            .half-circle{
                width: 100px;
                height: 50px;/*如果是半圆的话,这里高度应该是宽度的一半*/
                background: #FF0000;
                border-radius: 50px 50px 0 0;/*设置上方两个的弧度为50px,即为height的高度,以下四个参数,顺时针方向分别为左上角,右上角,右下角,左下角*/
                float: left;
                margin-left: 30px;
            }
            .circle{
                width: 100px;
                height: 100px;
                background: #FF0000;
                border-radius: 50px;/*设置四个角的弧度为50px,即为height的高度*/
                float: left;
                margin-left: 30px;
            }
     </style>
    <body>
            <div class="container">
                <div class="res"></div>
                <div class="half-circle"></div>
                <div class="circle"></div>
            </div>
    </body>

    效果如下:

    我想,通过代码都能大概了解border-radius的基础用法了吧。

    那么接下来就来学习一下伪元素::before,::after。

    css3为了区分伪类和伪元素,伪元素采用双冒号写法。

    常见伪类——:hover,:link,:active,:target,:not(),:focus。

    常见伪元素——::first-letter,::first-line,::before,::after,::selection。

    ::before和::after下特有的content,用于在css渲染中向元素逻辑上的头部或尾部添加内容。

    这些添加不会出现在DOM中,不会改变文档内容,不可复制,仅仅是在css渲染层加入。

    所以不要用:before或:after展示有实际意义的内容,尽量使用它们显示修饰性内容,例如图标。

    举例:在某类选择器前后添加样式,就可以使用:before伪元素,如下:

    <style>
                .en_header::before,
                .en_header::after{
                    /*一定要设置content属性,相对于将伪元素=display:block*/
                    content: "";
                    width: 10px;
                    height: 10px;
                    border-radius: 75px;
                    background-color:#ffffff;
                }
        </style>

    那么大概了解以下伪元素后就来画安卓机器人吧。

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Android机器人</title>
            <style>
                .container{
                    width: 300px;
                    height: 350px;
                    border: 1px solid #FBB450;
                    margin: 60px auto;
                }
                .en_header{
                    width: 150px;
                    height: 75px;
                    background-color: #008B69;
                    margin: 20px auto;
                    border-radius: 75px 75px 0 0;
                    position: relative;
                }
                .en_header::before,
                .en_header::after{
                    /*一定要设置content属性*/
                    content: "";
                    width: 10px;
                    height: 10px;
                    border-radius: 75px;
                    position: absolute;
                    top: 50px;
                    background-color:#ffffff;
                }
                .en_header::before{
                    left: 30px;                
                }
                .en_header::after{
                    right: 30px;
                }    
                .en_body{
                    width: 150px;
                    height: 150px;
                    background-color: #008B69;
                    margin: 0 auto;
                    margin-top: -10px;
                    border-radius: 0 0 10px 10px;
                    position: relative;
                }
                .en_body::before,
                .en_body::after{
                    /*一定要设置content属性*/
                    content: "";
                    width: 15px;
                    height: 100px;
                    border-radius: 5px;
                    position: absolute;
                    top: 10px;
                    
                    background-color:#008B69;
                }
                .en_body::before{
                    left: -20px;
                }
                .en_body::after{
                    right: -20px;
                }
                .en_footer{
                    width: 150px;
                    height: 70px;
                    margin: 0 auto;
                    margin-top: -10px;
                    position: relative;
                }
                .en_footer::before,
                .en_footer::after{
                    /*一定要设置content属性*/
                    content: "";
                    width: 15px;
                    height: 70px;
                    border-radius: 0 0 5px 5px;
                    position: absolute;
                    left: 30px;
                    background-color:#008B69;
                }
                /*.en_footer::before{
                    left: 30px;
                }*/
                .en_footer::after{            
                    left: 105px;        
                }
            </style>
        </head>
        <body>
        <div class="container">
            <div class="en_header"></div>
            <div class="en_body"></div>
            <div class="en_footer"></div>
        </div>    
        </body>
    </html>

    效果如下:

  • 相关阅读:
    使用ZooKeeper实现Java跨JVM的分布式锁
    基于ZooKeeper的分布式锁和队列
    activiti数据库表结构剖析
    visualvm监控jvm及远程jvm监控方法
    使用visualvm 远程监控 JVM
    java jprofile
    Linux服务器上监控网络带宽的18个常用命令
    Redis-sentinel哨兵模式集群方案配置
    电容的去耦半径
    DC-DC BUCK电源芯片的基本原理和组成
  • 原文地址:https://www.cnblogs.com/yuanzhenpeng/p/11585032.html
Copyright © 2011-2022 走看看