前端-笔试刷题-CSS选择器-样式设置-布局

标签、类、ID选择器

  • 题目描述
    请将html模块中字体内容是"红色"的字体颜色设置为"rgb(255, 0, 0)","绿色"设置为"rgb(0, 128, 0)","黑色"设置为"rgb(0, 0, 0)",且字体大小都为20px。
点击查看代码
<html>
    <head>
        <meta charset=utf-8>
        <style type="text/css">
            /*补全代码*/
            div{
                font-size:20px;
                color:rgb(255,0,0)
            }
            .green{
                color:rgb(0,128,0)
            }
            #black{
                color:rgb(0,0,0)
            }
        </style>
    </head>
    <body>
        <div>红色</div>
        <div class='green'>绿色</div>
        <div id='black'>黑色</div>
    </body>
</html>
**解析:** /*此处按照题意没有改动任何html代码 */ /*font-size 设置字体大小,color设置颜色加入rgb就等于设置了颜色的rgb值 */ /*div是内置标签所以找到标签定义的时候不需要加入任何东西,class定义的类名要定义需要使用一个.来找到,定义id时需要使用#号*/ 效果图: ![](https://img2023.cnblogs.com/blog/2208309/202303/2208309-20230317120113856-351801645.png)

伪类选择器

  • 题目描述
    请将html模块中ul列表的第2个li标签和第4个li标签的背景颜色设置成"rgb(255, 0, 0)"。
点击查看代码
<html>
    <head>
        <meta charset=utf-8>
        <style type="text/css">
            /*补全代码*/
            ul li:nth-child(2n){
                background-color:rgb(255,0,0);
            }
            或者如下代码:
            li:nth-child(2) {
	            background-color: rgb(255, 0, 0);
            }
            li:nth-child(4) {
	            background-color: rgb(255, 0, 0);
            }
        </style>
    </head>
    <body>
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>
    </body>
</html>
**解析:** 根据题目要求通过css修改ul元素标签下第二个和第四个li子元素标签的背景颜色,在css中可以通过伪类选择器:nth-child(n)匹配属于其父元素的第n个子元素,不论元素类型,n可以是数字、关键词、或公式。关键词odd和even是可用于匹配下标是奇数或偶数的子元素的关键词(第一个子元素的下标是 1) 效果图: ![](https://img2023.cnblogs.com/blog/2208309/202303/2208309-20230317120707391-1961727530.png)

伪元素

  • 题目描述
    请给html模块的div元素加一个后伪元素,且后伪元素的宽度和高度都是20px,背景颜色为"rgb(255, 0, 0)"。
点击查看代码
<html>
    <head>
        <meta charset=utf-8>
        <style type="text/css">
            /*补全代码*/
            div::after{
                content:"";
                width:20px;
                height:20px;
                background-color:rgb(255,0,0);
                display:block;
            }
        </style>
    </head>
    <body>
        <div></div>
    </body>
</html>
**解析:** div::after表示在div元素后插入内容。 在元素上,content 的初始值为 ‘normal’。在:before和:after上,如果指定了content 的初始值为 ‘normal’,则计算为 ‘none’ 。content 的值设置为 ‘none’ 不会生成伪元素。所以:before和:after才需要指定一个看似无意义的 content: ""; 来初始化content的值。 题目规定了宽高,为了使宽高设置有效又必须显式定义该伪元素为块级元素,也就是语句 display:block 效果图: ![](https://img2023.cnblogs.com/blog/2208309/202303/2208309-20230317132759265-1586925489.png)

按要求写一个圆

  • 题目描述
    请将html模块的div元素设置为一个半径是50px的圆,且边框为1px的黑色实线。
    要求:
  1. 圆角属性仅设置一个值
  2. 圆角属性单位请使用px
    注意:由于圆角属性设置广泛且都可以实现题目效果,所以请按照要求规范书写。
点击查看代码
<html>
    <head>
        <meta charset=utf-8>
        <style type="text/css">
            /*补全代码*/
            div{
                width:100px;
                height:100px;
                border:1px black solid;
                border-radius:50px;
            }
        </style>
    </head>
    <body>
        <div></div>
    </body>
</html>
**解析:** 根据题目要求通过css完成一个半径为50px的圆,在css中通常将圆的直径设置为某个盒子的宽度和高度,再通过border-radius设置盒子四个边角的弧度。border-radius仅设置一个值时,可以同时给元素的四个边角统一设值。当使用px作为单位来表示圆角值的时候,可以理解为以某个px为半径的圆被紧贴靠在某个边角上所呈现的弧度。首先设置div元素标签的宽度、高度都为100px,border-radius为50px,此时四个圆角都是半径为50px圆的四分之一圆弧,合起来即为一个半径为50px的整圆。 效果图: ![](https://img2023.cnblogs.com/blog/2208309/202303/2208309-20230317135234675-1677671745.png)

设置盒子宽高

  • 题目描述
    请将html模块类为"box"的div元素宽度和高度都设置为100px,且内间距为20px、外间距为10px。
点击查看代码
<html>
    <head>
        <meta charset=utf-8>
        <style type="text/css">
            /*补全代码*/
            .box{
                width:100px;
                height:100px;
                padding:20px;
                margin:10px;
                background-color:red;
            }
        </style>
    </head>
    <body>
        <div class="box">
        </div>
    </body>
</html>
效果图: ![](https://img2023.cnblogs.com/blog/2208309/202303/2208309-20230317135550747-1454202975.png)

浮动和清除浮动

  • 题目描述
    请将类为"left"的div元素和类为"right"的div元素在同一行上向左浮动,且清除类为"wrap"的父级div元素内部的浮动。
点击查看代码
<html>
    <head>
        <meta charset=utf-8>
        <style type="text/css">
            .wrap::after{
                /*补全代码*/
                display:block;
                clear:both;
                content:"";
            }
             .left {
                width: 100px;
                height: 100px;
                /*补全代码*/
                background-color:purple;
                float:left;               
            }
             .right {
                width: 100px;
                height: 100px;
                /*补全代码*/
                background-color:green;
                float:left;
            }
        </style>
    </head>
    <body>
        <div class='wrap'>
            <div class='left'></div>
            <div class='right'></div>
        </div>
    </body>
</html>
**另一种方法:** `
`

解析:
第一种:在style中,给父元素添加:overflow:hidden; 缺陷:假如父元素有需要溢出的元素显示,当父元素设置了overflow:hidden后,会导致这些溢出的元素内容无法正常显示。

第二种: 给类名wrap添加一个div子元素,然后给这个元素在style中设置"clear:left"; clear:left的作用是 清除左侧内容的浮动效果。

第三种:双伪元素法(个人比较推荐) 在style中父元素,给父元素添加伪元素 代码:

.wrap:after,.wrap:before{ content:' '; display:table; }

.wrap:after{ clear:both; } .wrap{ *zoom:1; }
效果图:

固定定位

  • 题目描述
    请将html模块类为"box"的div元素固定在视口的左上角。
点击查看代码
<html>
    <head>
        <meta charset=utf-8>
        <style type="text/css">
            .box {
                width: 100px;
                height: 100px;
                /*补全代码*/
                position: fixed;
                left: 0px;
                top: 0px;
                background-color:purple;
            }
        </style>
    </head>
    <body>
        <div class='box'></div>
    </body>
</html>


**解析:** 使用定位属性position和位偏移属性top和left 效果图: ![](https://img2023.cnblogs.com/blog/2208309/202303/2208309-20230317141757015-1726832311.png)

CSS单位一

  • 题目描述
    请将html模块中类为"box"的div元素的宽度和高度设置为自身字体大小的4倍。
点击查看代码
<html>
    <head>
        <meta charset=utf-8>
        <style type="text/css">
            .box {
                /*补全代码*/
                width:4em;
                height:4em;
            }
        </style>
    </head>
    <body>
        <div class='box'></div>
    </body>
</html>
**解析:** em:描述相对于应用在当前元素的字体尺寸,若当前尺寸为10px,即1em=10px,则2em=20px;em会继承父级盒子的字体大小。 rem:相对于根元素来讲,相对于是对当前字体大小的比较;而如果不是根元素,则是相对于当前根元素进行比较; em指的是自身字体大小的倍数 rem指的是跟字体大小的倍数 效果图: ![](https://img2023.cnblogs.com/blog/2208309/202303/2208309-20230317142210209-118476517.png)

CSS单位二

  • 题目描述
    请将html模块div元素的宽度和高度设置为html根元素字体大小的4倍。
    注意:只需在css模块补全样式内容,请勿修改html模块。
点击查看代码
<html>
    <head>
        <meta charset=utf-8>
        <style type="text/css">
            div {
                /*补全代码*/
                width:4rem;
                height:4rem;
            }
        </style>
    </head>
    <body>
        <div></div>
    </body>
</html>
**解析:** 在css中单位长度用的最多的是px、em、rem,这三个的区别是: px是固定的像素,一旦设置了就无法因为适应页面大小而改变。 em和rem相对于px更具有灵活性,他们是相对长度单位,意思是长度不是定死了的,更适用于响应式布局。 对于em和rem的区别一句话概括:em相对于父元素,rem相对于根元素。 效果图: ![](https://img2023.cnblogs.com/blog/2208309/202303/2208309-20230317142404473-771756502.png)
posted @ 2023-03-17 14:24  权世界  阅读(54)  评论(0编辑  收藏  举报