首页 > 其他分享 >CSS基础(五)

CSS基础(五)

时间:2022-12-02 14:00:43浏览次数:52  
标签:color ...... 元素 基础 height tag background CSS

新增语义化标签

  • 着重'语义',着重'颜值'
- section: 一个内容区块

- article: 与上下文无关的独立内容

- aside: 与 article 搭配使用,与 article 内容相关的辅助信息

- header: 头部标题

- footer: 尾部标题

- nav: 导航链接

- figure: 一段独立流内容

- main: 主要内容
  • demo演示: 先搭好基本的骨架(利用计算宽度/高度,完成布局[而不是使用position])

<!--

- 头部

- 中部

    - 左边小块导航

    - 中间主内容
        - 上,下 两小块内容
            - 上
                - 头部
                - 中间内容
                - 尾部
            - 下
                - 头部
                - 中间内容
                - 尾部

    - 右边小块说明文字

- 尾部

-->

<!DOCTYPE html>
<html>
    <head>
       ......
        <style>
            * {
                padding: 0;
                margin: 0;
            }
            
            html,body {
                height: 100%;
            }
            header,footer {
                height: 50px;
                line-height: 50px;
                text-align: center;
                background-color: orange;
            }
            section {
                height: calc(100% - 100px); /*计算高度*/
            }
            nav,aside {
                width: 200px;
                height: 100%;
                background-color: royalblue;
                float: left;
            }
            main {
                width: calc(100% - 400px);  /*计算宽度*/
                height: 100%;
                float: left;
            }
        </style>
    </head>
    <body>
        <header>
            头部
        </header>
        <section>
            <nav></nav> <!--导航-->
            <main></main> <!--主内容-->
            <aside></aside> <!--右边内容-->
        </section>
        <footer>
            尾部
        </footer>
        <script></script>
    </body>
</html>


  • 完整演示
<!DOCTYPE html>
<html>
    <head>
        ......
        <style>
            * {
                padding: 0;
                margin: 0;
            }
            
            html,body {
                height: 100%;
            }
            header,footer {
                height: 50px;
                line-height: 50px;
                text-align: center;
                background-color: orange;
            }
            section {
                height: calc(100% - 100px);
            }
            nav,aside {
                width: 200px;
                height: 100%;
                background-color: royalblue;
                float: left;
            }
            main {
                width: calc(100% - 400px);
                height: 100%;
                float: left;
            }
            article header{
                background-color: blueviolet;
            }
            article footer {
                background-color: blueviolet;
            }
            .first,.second { /*上,下块内容空间*/
                height: 40%;
            }
            .middle {
                height: 20%; /*上,下块内容之间空出的空间*/
            }
        </style>
    </head>
    <body>
        <header>
            头部
        </header>
        <section>
            <nav>
                <figure>导航内容</figure>
                <ul>
                    <li>111</li>
                    <li>222</li>
                    <li>333</li>
                </ul>
            </nav>
            <main>
                <article class="first">
                    <header>主内容头部</header>
                    <section>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Numquam perferendis laborum eum rem error facere accusantium ab odio quae laudantium porro quam repudiandae sunt eveniet sint debitis cupiditate magnam eius.</section>
                    <footer>主内容尾部</footer>
                </article>
                <article class="middle"></article>
                <article class="second">
                    <header>主内容头部</header>
                    <section>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Numquam perferendis laborum eum rem error facere accusantium ab odio quae laudantium porro quam repudiandae sunt eveniet sint debitis cupiditate magnam eius.</section>
                    <footer>主内容尾部</footer>
                </article>
            </main>
            <aside>
                <figure>说明文字</figure>
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sequi ut eveniet fugiat delectus voluptate dolorum molestiae beatae dolor eligendi provident omnis corporis architecto asperiores praesentium est magnam esse error nostrum!</p>
            </aside>
        </section>
        <footer>
            尾部
        </footer>
        <script></script>
    </body>
</html>

属性选择器

<head>
    ......
    <style>
        [class] { /*选择所有具有class属性的元素*/
            background-color: aquamarine;
        }
    </style>
</head>
<body>
    
    <!--所有class属性元素都有样式-->
    <div class="box1">1111111</div>
    <div class="box2">33333333</div>
    <div class="box2">44444444</div>
    <div class="box1">2222222</div>
    
    
</body>
  • tag[class=xxx]:选择对应 class=xxx 的tag元素(注意:这里表示'完全匹配')
<head>
   ......
    <style>
        div[class=box1] { /*运用*/
            background-color: aquamarine;
        }
    </style>
</head>
<body>
    
    <div class="box1">1111111</div> <!--样式-->
    <div class="box2">33333333</div>
    <div class="box2">44444444</div>
    <div class="box1">2222222</div> <!--样式-->
    ......
</body>
  • 综合示例
<head>
    ......
    <style>
        
        input[name] { /*所有name属性的运用背景色样式*/
            background-color: blueviolet;
        }
        input[type=email] {
            color: coral;
        }
    </style>
</head>
<body>
    
    <div>
        <h1>XX页面</h1>
        用户名: <input type="text" name="" id="" value="" /><br>
        密码: <input type="password" name="" id="" value="" /><br>
        年龄: <input type="number" name="" id="" value="" /><br>
        邮箱: <input type="email" name="" id="" value="" /> <!--样式-->
    </div>
    
</body>
  • "~": 表示包含
......
<style>
    ......
    
    div[class~=box3] { /*只要属性包含box3,就应用样式*/
        border: 1px solid red;
    }
</style>
.......
    <div class="box1 box3">1111111</div>
  • 模糊匹配(了解)

    • class^=b: 以'b'开头

    • class$=b: 以'b'结尾

    • class*=b: 包含'b'字符

伪类选择器

- x:first-child 匹配子集的第一个元素

- x:last-child

- x:nth-child(n) 匹配索引值为n的子元素

- x:only-child 匹配独生子女(唯一的子元素,多个孩子就无效,这个属性用得比较少)

- x:root 匹配文档的根元素,一般指'html'

- x:empyt 匹配没有任何子元素的元素(孤独终老)

  • 示例1: 删除最后一个子元素的外边距,使其和旁边两个子元素 保持在同一位置(不至于被'挤下来')
......
<head>
    <meta charset="utf-8" />
    <title></title>
    <!-- <script src="https://unpkg.com/vue@next"></script> -->
    <!-- <script src="js/v3.2.8/vue.global.prod.js" type="text/javascript" charset="utf-8"></script> -->
    <style>
        * {
            padding: 0;
            margin: 0;
        }
        .container {
            height: 100px;
            width: 940px; /*容器总的宽度*/
        }
        .container div {
            height: 100px;
            width: 300px;
            background-color: red;
            float: left;
            margin-right: 20px; /*子元素总共占据宽度320*/
        }
        .container div:last-child {
            margin-right: 0; /*删除边距,避免被挤下来*/
        }
    </style>
</head>
<body>  
    <div></div>
    
    <div class="container">
        <div></div>
        <div></div>
        <div></div>
    </div>
    

</body>
......
  • list示例
<head>
    <meta charset="utf-8" />
    <title></title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }
        
        ul li:first-child {
            background-color: red;
        }
         ul li:last-child {
             background-color: greenyellow;
         }
         
        ul li:nth-child(2) { 
             background-color: #31B0D5;
         }
         
        /* li:nth-child(2) { 这里省略父元素也是OK的
            background-color: #1B6D85;
        } */

        /* ul li:nth-child(2n+1) { 选择偶数项/奇数项
             background-color: #31B0D5;
         } */


    </style>
</head>
<body>  
    <ul>
        <li>111</li>
        <li>222</li>
        <li>333</li>
        <li>444</li>
    </ul>
    
    
    <script type="text/javascript" src="js/jquery-3.4.1.min.js">
        
    </script>
</body>
  • 示例: 独生子女才生效
<head>
   
    <style>
        * {
            padding: 0;
            margin: 0;
        }
        
        div p:only-child {
            background-color: #255625;
        }
    </style>
</head>
<body>  
    <div>
        <p>1111111</p> <!--有两孩子,不生效-->
        <p>22222222</p>
    </div>
    
    <div>
        <p>111111111</p> <!--有效果-->
    </div>
    
</body>
  • 示例:无依无靠才生效(注意:若包含回车,空格,也不会生效)
<style>
        * {
            padding: 0;
            margin: 0;
        }
        
        div {
            width: 200px;
            height: 100px;
        }
        
        div:empty {
            background-color: darkcyan;
        }
        
    </style>
......
<body>  
    
    <div>
        <!--无效果-->
    </div>
    
    <div></div> <!--有效果-->
    <script type="text/javascript" src="js/jquery-3.4.1.min.js">
        
    </script>
</body>
  • 示例: root
......
<style>
    * {
        padding: 0;
        margin: 0;
    }
    
    /* :root,body {
        height: 100%;
        background-color: yellow;
    } */
    
    
    html,body { /*一样的效果*/
        height: 100%;
        background-color: yellow;
    }
    
</style>
......

目标伪类选择器 tag:target

  • 选择匹配tag的所有元素,且匹配元素被相关URL指向

  • 固定位置菜单示例

<!DOCTYPE html>
<html>
    <head>
        ......
        <style>
            * {
                padding: 0;
                margin: 0;
            }
            
            .container {
                position: fixed;
                right: 0;
                top: 300px;
            }
            ul {
                list-style: none;
            }
            
            li {
                height: 40px;
                line-height: 40px;
                border: 1px solid black;
                text-align: center;
                
            }
            .content {
                height: 1000px;
            }
            div.content:target { /*当class=content被选中时,应用样式*/
                background-color: green; /*当元素没有被选中时,是不会运用这个样式的*/
            }
            
        </style>
    </head>
    <body>  
        
        <div class="container">
            <ul>
                <li><a href="#d1">秒杀</a></li>
                <li><a href="#d2">给力促销</a></li>
                <li><a href="#d3">特殊商品</a></li>
                <li><a href="#d4">倒计时即将开始</a></li>
            </ul>
        </div>
        <div class="content" id="d1">秒杀</div>
        <div class="content" id="d2">给力促销</div>
        <div class="content" id="d3">特殊商品</div>
        <div class="content" id="d4">倒计时即将开始</div>
        ......
    </body>
</html>

  • "手风琴"示例
<!DOCTYPE html>
<html>
    <head>
       ......
            * {
                padding: 0;
                margin: 0;
            }
            
            .content { /*平常看不见,隐藏起来*/
                display: none;
            }
            .content:target { /*等被选中的时候,就显示内容*/
                display: block;
            }
        
        </style>
    </head>
    <body>  
        
        <div>
            <a href="#aaa">aaa</a>
            <div id="aaa" class="content">
                Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quod saepe dolores iusto dignissimos suscipit esse veritatis tempora fugiat expedita veniam sunt magni eligendi deserunt voluptas illo blanditiis vero vitae fuga!
            </div>
        </div>
        
        <div>
            <a href="#bbb">bbb</a>
            <div id="bbb" class="content">
                Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quod saepe dolores iusto dignissimos suscipit esse veritatis tempora fugiat expedita veniam sunt magni eligendi deserunt voluptas illo blanditiis vero vitae fuga!
            </div>
        </div>
        
        <div>
            <a href="#ccc">ccc</a>
            <div id="ccc" class="content">
                Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quod saepe dolores iusto dignissimos suscipit esse veritatis tempora fugiat expedita veniam sunt magni eligendi deserunt voluptas illo blanditiis vero vitae fuga!
            </div>
        </div>
        
       ......
    </body>
</html>

UI元素状态伪类选择器(针对表单元素的处理)

  • tag:enabled 匹配所有用户界面(form表单)中处于可用状态的tag元素

  • tag:disabled 匹配所有用户界面(form表单)中处于不可用状态的tag元素

  • tag:focus 匹配所有用户界面(form表单)中处于"鼠标焦点"的tag元素

  • tag:checkd 匹配所有用户界面(form表单)中处于选中状态的tag元素

  • tag:selection 匹配tag元素中被用户选中或处于高亮状态的部分

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
       ......
        <style>
            * {
                padding: 0;
                margin: 0;
            }
            
            input:enabled { /*可用元素,运用样式*/
                background-color: green;
            }
            input:disabled { /*不可用元素,运用样式*/
                background-color: red;
            }
            input:focus { /*当鼠标焦点作用于该元素时,运用样式*/
                background-color: yellow;
            }

            input[type=checkbox] { 
                appearance: none; /*首先删除checkbox原有的样式,才可以运用样式*/
                height: 15px; /*给checkbox添加样式*/
                width: 15px;
                border: 1px solid black;
            }
            input:checked {
                background-color: purple; /*当checkbox被选中时,运用样式(必须先删除默认样式)*/
            }

            div::selection { /*当div容器被选中的时候(与表单元素无关),运用样式 (注意格式两个"::")*/
                background-color: #5BC0DE;
                color: #CE8483;
            }
        
        </style>
    </head>
    <body>  
        
        <form action="">
            用户名:<input type="text" name="" id="" value="" /><br>
            密码:<input type="password" name="" id="" value="" /><br>
            记住我:<input type="checkbox" name="" id="" value="" /><br>
            <input type="submit" name="" id="" value="提交" disabled/>
        </form>
        
        <div>
            Lorem ipsum dolor sit amet, consectetur adipisicing elit......
        </div>
        ......
    </body>
</html>

否定伪类选择器: not

  • 在原有的基础上,加上not

  • 语法看上去有点别扭...

......
<style>
            
    ul li:not(:first-child) { /*注意not的格式*/
        background-color: green;
    }
    
    ul li:first-child {
        background-color: red;
    }

</style>
......
<body>  
        
    <ul>
        <li>111</li>
        <li>222</li>
        <li>333</li>
        <li>444</li>
    </ul>
    ......
</body>

标签:color,......,元素,基础,height,tag,background,CSS
From: https://www.cnblogs.com/qinganning/p/16944262.html

相关文章

  • base.css
    body{  margin:0px;  padding:0px;  font:13px/28pxmicrosoftyahei,Verdana,Geneva,sans-serif;  background:url(../images/main_bg.png)......
  • css修改input标签:focus边框颜色
    css修改input标签:focus边框颜色input边框使用border修改样式,但是聚焦高亮时修改border没有效果使用 outline 即可.input_border:focus{outline:1pxsolidRoya......
  • 1.C++入门基础(上)
    2022-04-29-摘要C++关键字命名空间缺省参数函数重载extern“C”引用总结目录目录2022-04-29-摘要总结目录C++关键字命名空间命名空间定义命名空间的使用指定......
  • 快速小结:CSS3盒模型
    ......
  • spring mvc下css js中的jsession id?
    在http://www.mkyong.com/spring-mvc/jsp-jsessionid-added-to-css-and-js-link/中提到了在springmvc+jsp中,对资源文件的引入问题,比如:<html><hea......
  • 1.C++入门基础(上)
    2022-04-29-摘要C++关键字命名空间缺省参数函数重载extern“C”引用总结目录目录2022-04-29-摘要总结目录C++关键字命名空间命名空间定义命名空间的使用指定......
  • Debian基础配置
    1.网卡配置#编辑网卡sudonano/etc/network/interfaces#网卡配置【静态】allow-hotplugens32ifaceens32inetstaticaddress10.1.1.4/28gate......
  • css
    表单标签的补充说明1.form表单功能表单用于向服务器传输数据,从而实现用户与Web服务器的交互表单能够包含input系列标签,比如文本字段、复选框、单选框、提交按钮等等。......
  • CSS关于IOC字体图标的使用
    首先去:https://icomoon.io/app/#/select选择相适应的图标日文翻译:まず、https://icomoon.io/app/#/selectにアクセスして、適切なアイコンを選択します。  然后......
  • 深度学习-第五章机器学习基础
    前言5.1学习算法5.1.1任务\(T\)5.1.2性能度量\(P\)5.1.3经验\(E\)5.1.4示例:线性回归5.2容量、过拟合和欠拟合5.2.1没有免费午餐定理5.2.2正则化......