当前位置: 首页 > news >正文

CSS高频面试题

1.行内元素有哪些?块级元素有哪些?空元素有哪些?CSS的盒模型?

  • 块级元素:div, p, h1-h6,form, ul ,li
  • 行内元素:a, b, br, span, i, input, select
  • 行内块级元素:img , input
  • 空元素:即没有内容的HTML元素,br, meta, hr, link, input, img

行内元素和块级元素互相转换:

  • display: inline 强制将块级元素转换为行内元素
  • display: block 强制将行内元素转换为块级元素 并不是实际意义上的块级元素,只是可以设置宽高 用
  • display: inline-block 强制将块级元素转为行内元素。注意有3px间距。letter-spacing可以消除这个间距

css盒模型:标准盒模型和IE盒模型

标准盒模型转换为IE盒模型:box-sizing:border-box;

2.为什么要初始化CSS样式

因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异。

3.如何清除浮动

clear: both

  • 一是利用 clear 属性,包括在浮动元素末尾添加一个带有 clear: both 属性的空 div 来闭合元素,
  • 利用 :after 伪元素的方法也是在元素末尾添加一个内容为一个点并带有 clear: both 属性的元素实现的。

4.px,em,rem的区别

  • px和em都是长度单位,区别是,px的值是固定的,指定是多少就是多少,计算比较容易。
  • em得值不是固定的,并且em会继承父级元素的字体大小
  • rem的大小依赖于根元素 html,浏览器的默认字体高都是16px。所以未经调整的浏览器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em

5.如何让文字强制换行,强制不换行

强制不换行 { white-space:nowrap; }

自动换行 { word-wrap:break-word; }

超出显示省略号 { text-overflow:ellipsis;overflow:hidden; }

6.css 隐藏元素的方法?

display:none 不显示对应的元素,在文档布局中不再分配空间(回流+重绘)

visibility:hidden 隐藏对应元素,在文档布局中仍保留原来的空间(重绘)

7.CSS 常见的伪类和伪元素有哪些,他们的区别?

  • 伪元素主要是用来创建一些不存在原有dom结构树种的元素 ;伪类表示已存在的某个元素处于某种状态,但是通过dom树又无法表示这种状态,就可以通过伪类来为其添加样式
  • 伪元素的操作对象是新生成的dom元素,而不是原来dom结构里就存在的;而伪类恰好相反,伪类的操作对象是原来的dom结构里就存在的元素。
  • 伪元素与伪类的根本区别在于:操作的对象元素是否存在于原来的dom结构里

常见的伪类:

  • :link 应用于未被访问过的链接
  • :visited 应用于被访问过的链接
  • :hover 应用于鼠标悬停到的元素
  • :first-child 选择某元素第一个子元素
  • :last-child 选择最后一个。。。。。
  • :disabled 表单元素禁用
  • :enabled 匹配没有被禁用的元素

常见的伪元素:

  • ::first-letter 选择元素文本的第一个字
  • ::first-line 选择元素文本的第一行
  • ::before 在元素内容的最前面添加新内容。
  • ::after 在元素内容的最后面添加新内容。

8.CSS引入的方式有哪些?使用Link和@import有什么区别?

 内联,内嵌,外链,导入

  1. link 属于 XHTML 标签,除了加载 CSS 外,还能用于定义RSS,定义 rel 连接属性等作用,无兼容性,支持使用javascript改变样式;
  2. @import是CSS提供的,只能用于加载CSS,不支持使用 javascript 改变样式;
  3. 页面被加载的时,link 会被同时加载,而@import 引用的CSS会等到页面加载完再加载;
  4. import是CSS2.1 提出的,CSS2.1以下浏览器不支持,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题。
http://www.lryc.cn/news/204735.html

相关文章:

  • 解决matlab报错“输入参数的数目不足”
  • 使用python_opencv比较图像差异/使用python_opencv找出两张图像的差异范围
  • NOIP2023模拟1联测22 爆炸
  • http post协议实现简单的rpc协议,WireShark抓包分析
  • 1024程序员节
  • 嵌入式--->怎样选择编译语言,C C++或是Rust?
  • 一起学数据结构(12)——归并排序的实现
  • 读书笔记之《敏捷测试从零开始》(一)
  • 视频亮度太低了,如何调高
  • Xubuntu16.04系统中安装create_ap创建无线AP
  • WPF 设置全局静态参数
  • Leetcode链表问题汇总
  • 基于卷的磁盘扫描算法设计
  • 计算机组成原理-存储器概念
  • 力扣刷题 day54:10-24
  • Java基础篇 | Java8流式编程
  • SolidworksSimulation完成对压力容器的强度分析
  • 【C++】继承 ⑨ ( 继承中成员变量同名的处理方案 )
  • Python报错:‘EagerTensor‘ object has no attribute ‘reshape‘
  • docker-compose手册
  • 【珠峰 WEB 前端架构师课程】学习笔记 100 篇(完结)
  • Java线程中sleep()、wait()、yield()、join()方法的使用
  • 【机器学习】数据均衡学习笔记
  • 【软件教程】如何用C++交叉编译出能在Android运行的ELF程序或so动态库
  • 进阶JAVA篇- Map 系列集合的遍历方法与常用API
  • Auth.js:多合一身份验证解决方案 | 开源日报 No.60
  • SpringBoot整合Activiti7——任务监听器(七)
  • 电解电容寿命与哪些因素有关?
  • Opencv-图像插值与LUT查找表
  • 我为什么写博客?写博客给我带来了什么?