面经总结-HTML+CSS

什么是标签语义化?有什么意义?

  • 根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读,写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。
    像标题(H1~H6)、列表(li)、强调(strong em)
  • 在没有 CSS 的情况下,页面也能呈现出很好地内容结构、代码结构;
  • 有利于 SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;
  • 便于团队开发和维护,语义化更具可读性,遵循 W3C 标准的团队都遵循这个标准,可以减少差异化。

盒模型

  • box-sizing 属性主要用来控制元素的盒模型的解析模式。默认值是 content-box。
  • content-box:让元素维持 W3C 的标准盒模型。元素的宽度 / 高度由 border + padding + content 的宽度 / 高度决定,设置 width/height 属性指的是 content 部分的宽 / 高。
  • border-box:让元素维持 IE 传统盒模型(IE6 以下版本和 IE6~7 的怪异模式)。设置 width/height 属性指的是 border + padding + content。

CSS 选择符权重

  • css 中用四位数字表示权重,权重的表达方式如:0,0,0,0
    类型选择符的权重为 0001
    class 选择符的权重为 0010
    id 选择符的权重为 0100
    子选择符的权重为 0000
    属性选择符的权重为 0010
    伪类选择符的权重为 0010
    伪元素选择符的权重为 0001
    包含选择符的权重:为包含选择符的权中之和
    内联样式的权重为 1000
    继承样式的权重为 0000

单行、多行文本溢出

overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
overflow : hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
  • 比较靠谱简单的做法就是设置相对定位的容器高度,用包含省略号 (…) 的元素模拟实现;(添加伪元素)
    height 高度真好是 line-height 的整数倍;
    结束的省略好用了半透明的 png 做了减淡的效果,或者设置背景颜色;

CSS 中 link 和@import 的区别?

  • link 属于 HTML 标签,而 @import 是 CSS 提供的
  • 页面被加载的时,link 会同时被加载,而 @import 引用的 CSS 会等到页面被加载完再加载
  • import 只在 IE5 以上才能识别,而 link 是 HTML 标签,无兼容问题
  • link 方式的样式的权重 高于 @import 的权重

href 和 src 的定义与区别

  • href:指定网络资源的位置
    浏览器识别当前资源是一个样式表,页面解析不会暂停。这与把 css 文件内容写在

伪类和伪元素

  • 伪类可以理解为是一种状态,用于当已有元素处于某种状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。
    first-child、last-child、nth-child、first-of-type(父元素第一个特定的子元素)、last-of-type、nth-of-type、lang、focus、lvha(a 标签四个)
  • 伪元素则代表一些实实在在存在的元素, 可以创建一些文档语言无法创建的虚拟元素。
    ::after、::before、::first-letter(第一个字母)、::first-line(第一行)、::selection
  • 区别:伪类的操作对象时文档树中已有的元素,而伪元素则创建一个文档树以外的元素。因此他们之间的区别在于:有没有创建一个文档树之外的元素。
    CSS3 规范中要求使用双冒号 (::) 表示伪元素,单冒号 (:) 表示伪类

BFC

  • 块级格式化上下文,它是一个独立的渲染区域
  • BFC 的布局规则
    1、内部的 Box 会在垂直方向,一个接一个地放置。
    2、Box 垂直方向的距离由 margin 决定。属于同一个 BFC 的两个相邻 Box 的 margin 会发生重叠。
    3、每个元素的 margin box 的左边, 与包含块 border box 的左边相接触。
    4、BFC 的区域不会与 float box 重叠。
    5、BFC 就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。
    6、计算 BFC 的高度时,浮动元素也参与计算。
  • 触发 BFC
    1、根元素 (html)
    2、float 属性不为 none
    3、position 为 absolute 或 fixed
    4、display 为 inline-block, table-cell, table-caption, flex, inline-flex
    5、overflow 不为 visible
  • BFC 的作用
    1、自适应两栏布局
    2、清除内部浮动
    3、防止 margin 上下重叠

浮动元素的父元素高度自适应(高度塌陷)

  • 一个块级元素如果没有设置高度,其高度是由子元素撑开的。如果对子元素设置了浮动,那么子元素就会脱离文档流,也就是说父元素没有内容可以撑开其高度,这样父级元素的高度就会被忽略,这就是所谓的高度塌陷。
  • 隐藏法,给父元素添加声明overflow:hidden;
  • 在浮动元素下方添加空 div, 并给该元素添加声明:clear:both;height:0;overflow:hidden;
  • 万能清除浮动法,给浮动元素的父元素清除浮动;
    :after{content:”.”;clear:both;display:block;height:0;overflow:hidden;visibility:hidden;}

垂直水平居中

  • 需要已知子元素宽高
    1、absolute + 负 margin
    2、absolute + auto margin
    3、absolute + calc
  • 不需知道子元素宽高
    1、absolute + transform
    2、flex
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值