CSS部分要点

目录

SVG 指可伸缩矢量图形 (Scalable Vector Graphics)

盒模型的属性:margin(外边距)、border(边框)、padding(内边距)、content(内容

absolute、fixed、relative、static、inherit的区别

浮动元素

cellpadding 属性规定单元边沿与其内容之间的空白。

CSS Sprites

BFC

css标准单位:rem,em,px

元素继承

边框的样式可以包含的值包括:style,height,widthlink和@import的区别:

样式表类型

outliine

主流浏览器内核私有属性css前缀:

CSS 选择器优先级:

输入类型

什么是reflow?

关于link与@import的区别:

alc()的运算规则

输入类型定义时间控件

内联元素

边距属性参数值为4个时,分别代表:上、右、下、左边距。

创建带有 ID 属性的 DOM 元素有什么副作用

SVG与Canvas的区别

ease    


  1. 属性
  • white-space: normal | pre | nowrap | pre-wrap | pre-line | inherit ; 设置如何处理元素内的空白

描述

normal

空白会被浏览器忽略(默认值)

pre

空白会被浏览器保留,其行为方式类似 HTML 中的 pre 标签

nowrap

文本不会换行,文本会在在同一行上继续,直到遇到 br 标签为止

pre-wrap

保留空白符序列,但是正常地进行换行

pre-line

合并空白符序列,但是保留换行符

inherit

规定应该从父元素继承 white-space 属性的值

  • text-overflow: clip | ellipsis | string ;

描述

clip

修剪文本

ellipsis

显示省略符号来代表被修剪的文本

string

使用给定的字符串来代表被修剪的文本

  • overflow: visible | hidden | scroll | auto | inherit ;

描述

visible

内容不会被修剪,会呈现在元素框之外(默认值)

hidden

内容会被修剪,并且其余内容是不可见的

scroll

内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容

auto

如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容

inherit

规定应该从父元素继承 overflow 属性的值

    2. 应用:

  • 单行文本溢出隐藏
div {
  /* 强制一行显示*/
  white-space: nowrap;
  /* 超出部分隐藏 */
  overflow: hidden;
  /* 超出部分省略号 */
  text-overflow: ellipsis;
}
  • 多行文本溢出隐藏

SVG 指可伸缩矢量图形 (Scalable Vector Graphics)

SVG 用来定义用于网络的基于矢量的图形
SVG 使用 XML 格式定义图形
SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失
SVG 是万维网联盟的标准

SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体

(SVG是HTML下的一个分支)

盒模型的属性:margin(外边距)、border(边框)、padding(内边距)、content(内容

fieldset用来分组,而legend用来分组描述

absolute、fixed、relative、static、inherit的区别

fixed 属性的元素在标准流中不占位置,absolute会使元素脱离文档流,static、relative都还在流中

例题:

以下说法中错误的是                        A D  

A.当元素的 position 属性设置为 relative 时,设置的 top、right、bottom、left 偏移值是相对于其父元素的。
B.当元素的 position 属性设置为 absolute 时,设置的 top、right、bottom、left 偏移值是相对于其上一级有定位的祖先元素。
C.网页中,rem 作为元素尺寸单位时,是相对 文档根节点的 font-size 进行计算的。
D.目前最新的 Microsoft Internet Explorer 中,盒模型默认使用的是 border-box。

解析: A.relative相对自身进行偏移 B.absolute相对上一级有定位的祖先元素 C.正确的 记住就行 D.默认的盒子模型是content-box

标准盒子模型 = margin + border + padding + width (width = content )

IE盒子模型 = margin + width(width = border + padding + content )

例题:
 

根据规范,以下 HTML 和 CSS 代码解析后, container.clientWidth 的值是:

<style>#container 
{width: 200px;   
 height: 200px;    
 padding: 20px;    
 margin: 20px;    
 border: solide 10px black;}
</style>
<div id="container">content</div>
  • 200
  • 240
  • 280
  • 300

ele.clientWidth = 宽度 + padding

ele.offsetWidth = 宽度 + padding + border

 ele.scrollTop = 被卷去的上侧距离

 ele.scrollHeight = 自身实际的高度(不包括边框)

浮动元素

1、行内元素与浮动元素发生重叠,边框、背景、内容都会显示在浮动元素之上

2、块级元素与浮动元素发生重叠,边框、背景会显示在浮动元素之下,内容会显示在浮动元素之上

3、若不浮动的是块级元素,那么浮动的元素将显示在其上方

4、若不浮动的是行内元素或者行内块元素,那么浮动的元素不会覆盖它,而是将其挤往左方

cellpadding 属性规定单元边沿与其内容之间的空白。

注释:请勿将该属性与 cellspacing 属性相混淆,cellspacing 属性规定的是单元之间的空间。

从实用角度出发,最好不要规定 cellpadding,而是使用 CSS 来添加内边距

CSS Sprites

 CSS Sprites在国内很多人叫css精灵,是一种网页图片应用处理方式。它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了。
利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景定位,background-position可以用数字精确的定位出背景图片的位置。
利用CSS Sprites能很好地减少网页的http请求,从而大大的提高页面的性能,这也是CSS Sprites最大的优点,也是其被广泛传播和应用的主要原因;
CSS Sprites能减少图片的字节,曾经比较过多次3张图片合并成1张图片的字节总是小于这3张图片的字节总和。
解决了网页设计师在图片命名上的困扰,只需对一张集合的图片上命名就可以了,不需要对每一个小元素进行命名,从而提高了网页的制作效率。
更换风格方便,只需要在一张或少张图片上修改图片的颜色或样式,整个网页的风格就可以改变。维护起来更加方便。

BFC

 BFC就是“块级格式化上下文”的意思,创建了 BFC的元素就是一个独立的盒子,不过只有Block-level box可以参与创建BFC, 它规定了内部的Block-level Box如何布局,并且与这个独立盒子里的布局不受外部影响,当然它也不会影响到外面的元素。

        内部的Box会在垂直方向,从顶部开始一个接一个地放置。Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生叠加每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。

哪些情况会产生BFC:

  1. 根元素
  2. float属性不为none
  3. position为absolute或fixed
  4. display为inline-block, table-cell, table-caption, flex, inline-flex
  5. overflow不为visible

BFC的区域不会与float box叠加。

BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然。

计算BFC的高度时,浮动元素也参与计算。

<object>与<source>

外部资源由 <object> 元素表示,该元素可以被视为图像、嵌套的浏览上下文或插件要处理的资源。它包括各种属性,如存档、边框、分类、代码库、代码类型等。<source>表指定多个媒体资源

 

css标准单位:rem,em,px

https://www.runoob.com/cssref/css-units.html

div、p是块状元素

span是内联元素

img是内联块状元素

HTML5 内建对象用于在画布上绘制 :getContext

<track>被称为媒体元素的子元素。新多媒体元素有: audio, video, source(定义多媒体资源) embed(定义嵌入的内容,比如插件) track(为<audio>,<video>这些元素的媒介规定外部文本轨道)</video></audio>

<meter>

用于显示已知范围内的标量测量。也被称为 gauge(尺度)。

例子:磁盘用量、查询结果的相关性,等等。

注释:<meter> 标签不应用于指示进度(在进度条中)。如果标记进度条,请使用 <progress> 标签。

元素继承

不可继承的:baidisplay、dumargin、border、padding、background、height、min-height、max- height、width、min-width、max-width、overflow、position、left、right、top、 bottom、z-index、float、clear、table-layout、vertical-align、page-break-after、 page-bread-before和unicode-bidi。

所有元素可继承:visibility和cursor。

内联元素可继承:letter-spacing、word-spacing、white-space、line-height、color、font、font-family、font-size、font-style、font-variant、font-weight、text-decoration、text-transform、direction。

终端块状元素可继承:text-indent和text-align。

列表元素可继承:list-style、list-style-type、list-style-position、list-style-image。

边框的样式可以包含的值包括:style,height,width

link和@import的区别:

1)link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。

2)link可以加载CSS,Javascript;@import只能加载CSS。

3)link加载的内容是与页面同时加载;@import需要页面网页完全载入以后加载

样式表类型

在 HTML 中,样式表按照应用方式可以分为三种类型,内嵌样式表,行内样式表,外部样式表文件

outliine

 outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。
注释:轮廓线不会占据空间,也不一定是矩形

主流浏览器内核私有属性css前缀:

mozilla内核 (firefox,flock等)     -moz
webkit内核(safari,chrome等)    -webkit
opera内核(opera浏览器)            -o
trident内核(ie浏览器)                 -ms

CSS 选择器优先级:

内联样式 > ID 选择器 > 伪类 > 属性选择器 > 类选择器 > 元素(类型)选择器 > 通用选择器

权值等级划分,一般为4个等级:

  • 第一等级:代表内联样式,如style="",权值为 1,0,0,0
  • 第二等级:代表ID选择器,如#content,权值为0, 1, 0, 0
  • 第三等级:代表类,伪类和属性选择器,如.class| :hover :link :target | [type] ,权值为0, 0, 1, 0
  • 第四等级:代表标签选择器和伪元素选择器,如p | ::after ::before ::first-inline, ::selection,权值为0, 0, 0, 1

注意:通用选择器(*),子选择器(>),和相邻同胞选择器(+)并不在这4个等级中,所以他们的权值为0,0,0,0

输入类型

button定义可点击的按钮(大多与 JavaScript 使用来启动脚本)
checkbox定义复选框。
color定义拾色器。
date定义日期字段(带有 calendar 控件)
datetime定义日期字段(带有 calendar 和 time 控件)
datetime-local定义日期字段(带有 calendar 和 time 控件)
month定义日期字段的月(带有 calendar 控件)
week定义日期字段的周(带有 calendar 控件)
time定义日期字段的时、分、秒(带有 time 控件)
email定义用于 e-mail 地址的文本字段
file定义输入字段和 "浏览..." 按钮,供文件上传
hidden定义隐藏输入字段
image定义图像作为提交按钮
number定义带有 spinner 控件的数字字段
password定义密码字段。字段中的字符会被遮蔽。
radio定义单选按钮。
range定义带有 slider 控件的数字字段。
reset定义重置按钮。重置按钮会将所有表单字段重置为初始值。
search定义用于搜索的文本字段。
submit定义提交按钮。提交按钮向服务器发送数据。
tel定义用于电话号码的文本字段。
text默认。定义单行输入字段,用户可在其中输入文本。默认是 20 个字符。
url定义用于 URL 的文本字段。

什么是reflow?

reflow(回流)是指浏览器为了重新渲染部分或者全部的文档,重新计算文档中的元素的位置和几何构造的过程。 因为回流可能导致整个Dom树的重新构造,所以是性能的一大杀手。

以下操作会引起回流: ① 改变窗口大小 ② font-size大小改变 ③ 增加或者移除样式表 ④ 内容变化(input中输入文字会导致) ⑤ 激活CSS伪类(:hover) ⑥ 操作class属性,新增或者减少 ⑦ js操作dom ⑧ offset相关属性计算 ⑨ 设置style的值 , 另外: reflow与repaint(重绘)是减缓js的几大主要原因,尤其是reflow更是性能杀手,所以我们应该想法避免

关于link与@import的区别:

区别1:link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS。

区别2:link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。

区别3:link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。 区别4:link支持使用Javascript控制DOM去改变样式;而@import不支持。

alc()的运算规则

calc()使用通用的运算规则,但是也提供更智能的功能:

  1. 使用“+”、“-”、“*” 和 “/”四则运算;
  2. 可以使用百分比、px、em、rem等单位;
  3. 可以混合使用各种单位进行计算;
  4. 表达式中有“+”和“-”时,其前后必须要有空格,如"widht: calc(12%+5em)"这种没有空格的写法是错误的;
  5. 表达式中有“*”和“/”时,其前后可以没有空格,但建议留有空格。

输入类型定义时间控件

date 选取日、月、年

month 选取月和年

week 选取周和年

time 选取时间(小时和分钟)

内联元素

内联元素是不可以控制宽和高、margin等;并且在同一行显示,不换行。

块级元素时可以控制宽和高、margin等,并且会换行。

1. inline : 使用此属性后,元素会被显示为内联元素,元素则不会换行  

inline是行内元素,同行可以显示,像span、font、em、b这些默认都是行内元素,不会换行,无法设置宽度、高度、margin、border

2. block : 使用此属性后,元素会被现实为块级元素,元素会进行换行。  

block,块元素,div、p、ul、li等这些默认都是块元素,会换行,除非设置float  

3. inline-block : 是使元素以块级元素的形式呈现在行内。意思就是说,让这个元素显示在同一行不换行,但是又可以控制高度和宽度,这相当于内敛元素的增强。(IE6不支持)  

inline-block,可以同行显示的block,想input、img这些默认就是inline-block,出了可以同行显示,其他基本block一样。

例题:

DOM 文件对象模型,提供了树状结构的表示方法,以下描述正确的是:

D

  • Document 不是一個 document node,是一种节点格式
  • 不是所有的 HTML elements 都是 element nodes
  • 所有的 comments 都是 document node
  • 在 HTML element 內的 text 內容也是 text node

一、DOM树一共有12种节点类型,常用的有4种:

1、Document类型(document节点)——DOM的“入口点”

2、Element节点(元素节点)——HTML标签,树构建块

3、Text类型(文本节点)——包含文本

4、Comment类型(注释节点)——有时我们可以将一些信息放入其中,它不会显示,但JS可以从DOM中读取它。

二、题目解析

A. Document 不是一个 document node,是一种节点格式(错误。是document node,也是节点格式)

B. 不是所有的 HTML elements 都是 element nodes(错误。所有的都是)

C. 所有的 comments 都是 document node(错误。不是document node, 应该是comment node)

D. 在 HTML element 內的 text 內容也是 text node (正确)

边距属性参数值为4个时,分别代表:上、右、下、左边距。

margin标记可以带一个、二个、三个、四个参数,各有不同的含义

  • margin: 20px;(上、下、左、右各20px。)

  • margin: 20px 40px;(上、下20px;左、右40px。)

  • margin: 20px 40px 60px;(上20px;左、右40px;下60px。)

  • margin: 20px 40px 60px 80px;(上20px;右40px;下60px;左80px。)

在css中使用margin可以将margin-top,margin-right,margin-bottom,margin-left,缩写为一个标记,顺序为上右下左(顺时针)。

不推荐使用上述四个标志,因为在不同浏览器对于margin的四个边都有不同的命名。

创建带有 ID 属性的 DOM 元素有什么副作用

增加内存负担,创造同名全局变量。

SVG与Canvas的区别


     SVG
         不依赖分辨率
         支持事件绑定
         大型渲染区域的程序(例如百度地图)
         不能用来实现网页游戏
    Canvas
         依赖分辨率
         不支持事件绑定
         最合适网页游戏
         保存为".jpg"格式的图片

要运用css3动画,需要运用@keyframes规则和animation属性。

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))。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值