CSS题目

作者: 头大如牛 | 来源:发表于2019-07-11 00:06 被阅读0次

css

1、盒模型

标准W3C盒模型(content-box)width:content

IE盒模型width(border-box):content+border+padding

通过CSS3属性box-sizing来设定,参数有border-box/content-box/inherit

2、flex

通过display: flex启动,重要属性

justify-content: center;

align-items: center

3、css单位

绝对单位

单位 简介
px 像素 (计算机屏幕上的一个点),1px = 1/96in
pt 磅 (Points) ,1 pt = 1/72 in
pc 12 点活字(Picas),1pc = 12pt = 1/6in
in 英寸(Inches),1in = 96px = 2.54cm
cm 厘米(Centimeters),1cm = 96/2.54px
mm 毫米(Millimeters),1mm = 1/10cm
q Quarter-millimeters,1q = 1/4mm

相对单位

单位 简介
% 百分比,相对于父元素的宽度或者字体大小
em 相对于当前对象内文本字体的大小,1em = 当前字体的大小,2em = 2*当前字体的大小
rem (root em),相对于html标签的字体大小
ex 当前字体环境中x字母的高度,一个 ex 是一个字体的 x-height (x-height 通常是字体尺寸的一半。)
ch 当前字体环境中0数字的高度
vw 1%视口(浏览器可视区域)的宽度
vh 1% 视口(浏览器可视区域)的高度
vmin 1% 视口(浏览器可视区域)宽度和高度中较小的尺寸
vmax 1% 视口(浏览器可视区域)宽度和高度中较大的尺寸

4、css选择器

选择器 符号
id #idName
class .classname
相邻选择器 ul+div
子选择器 ul>div
后代选择器 ul div
通配符 *
属性选择器 a[href='xxx']
伪类选择器 a:after a:hover

5、bfc 清除浮动

BFC(块格式化上下文)

以下情况会创建BFC

  1. 根元素或包含根元素的元素
  2. 浮动元素 float = left | right 或 inherit(≠ none)
  3. 绝对定位元素 position = absolute 或 fixed
  4. display = inline-block | flex | inline-flex | table-cell 或 table-caption
  5. overflow = hidden | auto 或 scroll (≠ visible)

BFC特性

  1. BFC 是一个独立的容器,容器内子元素不会影响容器外的元素。反之亦如此。
  2. 盒子从顶端开始垂直地一个接一个地排列,盒子之间垂直的间距是由 margin 决定的。
  3. 在同一个 BFC 中,两个相邻的块级盒子的垂直外边距会发生重叠。
  4. BFC 区域不会和 float box 发生重叠。
  5. BFC 能够识别并包含浮动元素,当计算其区域的高度时,浮动元素也可以参与计算了。

BFC清除浮动

  1. 父元素设置 overflow: hidden
  2. 浮动元素加clearfix类
.clearfix:after{
    content: ''
    display: block
    clear: both
}

6、层叠上下文

z-index

7、常见页面布局

8、响应式布局

9、css预处理,后处理

预处理:sass、LESS、stylus

10、css3新特性, animation和transiton的相关属性, animate和translate

transiton的参数

属性 描述
transition-property none,all,property 指定CSS属性的name,transition效果
transition-duration time(默认为0) transition效果需要指定多少秒或毫秒才能完成
transition-timing-function 见下表 指定transition效果的转速曲线
transition-delay time 定义transition效果开始的时间

transition-timing-function的值

描述
linear 规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))。
ease 规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。
ease-in 规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。
ease-out 规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。
ease-in-out 规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。
cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。

transition优点在于简单易用,有几个缺陷

  1. transition需要事件触发,所以没法在网页加载时自动发生。

  2. transition是一次性的,不能重复发生,除非一再触发。

  3. transition只能定义开始状态和结束状态,不能定义中间状态,也就是说只有两个状态。

  4. 一条transition规则,只能定义一个属性的变化,不能涉及多个属性。

所以针对以上缺陷,提出了Animation

animation参数

描述
animation-name 指定要绑定到选择器的关键帧的名称
animation-duration 动画指定需要多少秒或毫秒完成
animation-timing-function 设置动画将如何完成一个周期
animation-delay 设置动画在启动前的延迟间隔。
animation-iteration-count 定义动画的播放次数。
animation-direction 指定是否应该轮流反向播放动画。
animation-fill-mode 规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。
animation-play-state 指定动画是否正在运行或已暂停。
initial 设置属性为其默认值。
inherit 从父元素继承属性。

animation-direction的值

描述
normal 默认值。动画按正常播放。
reverse 动画反向播放。
alternate 动画在奇数次(1、3、5...)正向播放,在偶数次(2、4、6...)反向播放。
alternate-reverse 动画在奇数次(1、3、5...)反向播放,在偶数次(2、4、6...)正向播放。
initial 设置该属性为它的默认值。
inherit 从父元素继承该属性。

animation-fill-mode的值

描述
none 默认值。动画在动画执行之前和之后不会应用任何样式到目标元素。
forwards 在动画结束后(由 animation-iteration-count 决定),动画将应用该属性值。
backwards 动画将应用在 animation-delay 定义期间启动动画的第一次迭代的关键帧中定义的属性值。这些都是 from 关键帧中的值(当 animation-direction 为 "normal" 或 "alternate" 时)或 to 关键帧中的值(当 animation-direction 为 "reverse" 或 "alternate-reverse" 时)。
both 动画遵循 forwards 和 backwards 的规则。也就是说,动画会在两个方向上扩展动画属性。
initial 设置该属性为它的默认值。
inherit 从父元素继承该属性。

11、display哪些取值

描述
none 此元素不会被显示。
block 此元素将显示为块级元素,此元素前后会带有换行符。
inline 默认。此元素会被显示为内联元素,元素前后没有换行符。
inline-block 行内块元素。(CSS2.1 新增的值)
list-item 此元素会作为列表显示。
run-in 此元素会根据上下文作为块级元素或内联元素显示。
table 此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。
inline-table 此元素会作为内联表格来显示(类似 <table>),表格前后没有换行符。
table-row-group 此元素会作为一个或多个行的分组来显示(类似 <tbody>)。
table-header-group 此元素会作为一个或多个行的分组来显示(类似 <thead>)。
table-footer-group 此元素会作为一个或多个行的分组来显示(类似 <tfoot>)。
table-row 此元素会作为一个表格行显示(类似 <tr>)。
table-column-group 此元素会作为一个或多个列的分组来显示(类似 <colgroup>)。
table-column 此元素会作为一个单元格列显示(类似 <col>
table-cell 此元素会作为一个表格单元格显示(类似 <td><th>
table-caption 此元素会作为一个表格标题显示(类似 <caption>
inherit 规定应该从父元素继承 display 属性的值。

12、相邻的两个inline-block节点为什么会出现间隔,该如何解决

英文有空格作为词分界,而中文则没有。由空格换行符导致的

解决方法

  1. 改变代码书写方式。
    取消标签与标签之间的空格换行符,
    考虑到代码的可读性,废弃

  2. 改变字符大小。
    使用 font-size:0

    .space {
        font-size: 0;
    }
    .space a{
        font-size: 12px
    }
    

    可以去除大部分浏览器的间距,IE7有时会有1px间距,Chrome默认存在字体大小限制。所以需要进一步处理

    .space {
        font-size:0;
        -webkit-text-size-adjust:none;
    }
    

    据说已经取消了最小字体限制,该行代码应该已经不适用

  3. 使用letter-spacing。
    给父级元素设置一个较大的负值,在元素上将letter-spacing归0

    .space {
        letter-spacing: -3px;
    }
    .space a {
        letter-space: 0;
    }
    

    基本适用全浏览器,除Opera最小间距1px

13、meta viewport 移动端适配

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">

14、CSS实现宽度自适应100%,宽高16:9的比例的矩形

先计算高度

假设宽为100%,那么高为 h= 9/16 = 56.25%
设置padding-bottom实现

html

<body>
    <div class="wrap">
        <div class="box">
            <p>这是一个16:9的矩形</p>
        </div>
    </div>
</body>

CSS

* {
    margin: 0px;
    padding: 0px;
}
.wrap {
    width:50%
}
.box {
    width: 100%;
    height: 0px;
    padding-bottom: 56.25%;
    background: pink;
    position: relative;
}
.box p {
    width: 100%;
    height: 100%;
    position: absolute;
}

15、画三角形

因为padding和margin无法设置颜色
所以三角形的填充颜色 利用border来进行

.triangle {
    width: 0;
    height: 0;
    border: 50px solid transparent;
    border-bottom: 100px solid green;
}

16、1像素边框问题

移动端的css里面写了1px,实际确比1px粗, iPhone的devicePixelRatio ==2 而border-width:1px是设备独立像素,所以被释放为物理像素2px,所以比较粗

解决方法

  1. 媒体查询利用设备像素比缩放,设置小数像素
  2. border-image方案
  3. background-image渐变实现
  4. box-shadow方案
  5. transform: scale(0.5)

html

1、语义化

HTML的语义化有助于SEO,爬虫抓取更多有效信息,在没有CSS的情况下也能结构分明,方遍开发维护

2、新标签新特性

  • 增加的标签
标签 描述
header 定义文档头部
footer 定义文档尾部
nav 定义文档导航
section 定义区块
article 定义页面独立的内容区域
aside 定义边栏
details 定义文档描述细节
summary 标签包含details元素标题
dialog 定义对话框,比如提示框
canvas 用于绘画的标签
audio 音频播放
video 视频播放
  • 增强型表单type
输入类型 描述
color 选取颜色
date 从一个日期选择器选取一个日期
datetime 选择一个日期(UTC时间)
datetime-local 选择一个日期和时间(无时区)
email 包含一个邮件地址输入域
month 选择一个月份
number 数值的输入域
range 一定范围内的数字值输入域
search 用于搜索域
tel 定义输入电话字段
time 选择一个时间
url URL地址的输入域
week 选择周和年
  • 新增表单属性
属性 描述
placeholder 输入框提示灰色字
required boolean属性,要求输入域不为空
pattern 描述了一个正则用于验证input值
min和max属性 设置了元素的最小值最大值
step 为输入域规定合法数字间隔
height和width 用于image类型input图像高度宽度
autofocus boolean属性,页面加载自动获得焦点
multiple boolean属性,规定input元素可选择多个值

3、input和textarea的区别

input标签

  1. 需要指定type属性,如text,password
  2. 通过size属性指定显示字符长度
  3. value属性指定初始值
  4. Maxlength属性指定文本框可以输入的最长长度
  5. 焦点垂直居中文本框中,单行

textarea标签

  1. 需要</textarea>来封闭
  2. 内容写在标签中
  3. 使用row,col指定textarea大小
  4. 焦点在左上角,多行

4、用一个div模拟textarea的实现

<!DOCTYPE html>
<html>
<head>
    <title>模拟textarea</title>
    <style>
        #textarea {
            width: 300px;
            min-height: 120px;
            max-height: 300px;
            border: 1px solid #333;
            overflow-y: auto
        }
    </style>
</head>
<body>
    <div id="textarea" contenteditable="true"></div>
</body>
</html>

5、移动设备忽略将页面中的数字识别为电话号码的方法

<meta name = "format-detection" content = "telephone=no">

相关文章

  • CSS题目

    css 1、盒模型 标准W3C盒模型(content-box)width:contentIE盒模型width(bo...

  • 10-9

    CSS 题目一 题目二 题目三

  • 10-7 作业参考

    题目二:照图制作网页html文件名:divindiv.html css文件名:divindiv.css 题目三:按...

  • 10-11

    10-11公用css 题目一:浮动 题目二:元素转换

  • 10-11 作业参考

    题目一:浮动html网页名:exercise1.html css文件名:style.css

  • HTML&CSS题目

    渐进增强和优雅降级? 渐进增强:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互...

  • currentColor 巧用技巧

    currentColor-CSS3超高校级好用CSS变量 更新于2016-06-23 本文题目已从“current...

  • 属性操作和事件

    题目1: 写一个函数,批量操作 css 题目2: 如何获取 DOM 计算后的样式 题目3 : 实现以下效果 效果预...

  • 前端开发面试题(CSS)

    题目&答案 如何理解CSS的盒子模型? link和@import的区别? CSS 选择符有哪些?哪些属性可以继承?...

  • 超赞的 CSS 阴影技巧与细节

    本文的题目是 CSS 阴影技巧与细节。CSS 阴影,却不一定是 box-shadow 与 filter:drop-...

网友评论

      本文标题:CSS题目

      本文链接:https://www.haomeiwen.com/subject/dhslkctx.html