漳州手机网站建设公司哪家好,南京做网站好的公司,上海网站建设公司价格,全面的微信开发1. CSS选择器及其优先级
!important 行内样式 id选择器 类/伪类/属性选择器 标签/伪元素选择器 子/后台选择器 *通配符
2. 重排和重绘是什么#xff1f;浏览器的渲染机制是什么#xff1f;
重排(回流)#xff1a;当增加或删除dom节点…1. CSS选择器及其优先级
!important 行内样式 id选择器 类/伪类/属性选择器 标签/伪元素选择器 子/后台选择器 *通配符
2. 重排和重绘是什么浏览器的渲染机制是什么
重排(回流)当增加或删除dom节点或者给元素修改宽高时会改变页面布局那么就会重新构造dom树然后再次渲染。
重绘计算好盒模型的位置大小和其他一些属性之后浏览器就会根据每个盒模型的特性进行绘制。
浏览器的渲染机制当dom的大小位置发生改变时进行重排当dom的样式如color、background-color改变时进行重绘。
3. display有哪些属性值
属性值作用none元素不显示并且会从文档流中移除block块类型默认宽度为父元素宽度可设置宽高换行显示inline行内元素类型默认宽度为内容宽度不可设置宽高同行显示inline-block默认宽度为内容宽度可设置宽高同行显示table此元素会作为块级表格来显示子元素可设置display:table-row、table-cell等flexflex布局grid网格布局inherit规定应该从父元素继承display属性的值
网格布局笔记网格布局
表格布局可以看下面代码
!DOCTYPE html
html langenheadmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/titlestyle* {padding: 0;margin: 0;}.table {display: table; /* 表格 */width: 800px;height: 500px;margin: 20px auto;border: 3px solid #000;}.row {display: table-row; /* 表格行 */}.cell {display: table-cell; /* 表格单元 */border: 1px solid #000;}/style
/headbodydiv classtablediv classrowdiv classcell1/divdiv classcell2/divdiv classcell3/div/divdiv classrowdiv classcell4/divdiv classcell5/divdiv classcell6/div/div/div
/body/html结果如下 4. display的block、inline和inline-block的区别
block独占一行宽度继承至父盒子多个元素会另起一行可设置宽高以及margin和padding属性。
inline元素不会独占一行宽度、高度由内容撑开不可设置宽高但可以设置水平方向的margin和padding。
inline-block行内块将对象设置为inline对象但对象的内容作为block对象呈现也就是说内容排列在一行内显示但是可以设置宽高。
5. 隐藏的元素的方法有哪些
display: nonevisibility: hiddenopacity: 0position: absolute 移到可视区之外z-index: 负值 定位的前提下使其他元素盖住该元素以此实现隐藏transformscale(0, 0) 将元素缩放为0来实现元素的隐藏元素仍占据位置。
6. link和import的区别
两者都是外部引用css的方式他们的区别如下
功能上link是XHTML标签除了加载CSS外还可以定义RSS等其他事务import属于CSS范畴只能加载CSS效果上link引用CSS时在页面载入时同时加载import需要页面网页完全载入以后加载兼容性上link是XHTML标签没有兼容性问题import是CSS2.1提出的低版本浏览器不支持js支持上link支持使用js控制dom去改变样式而import不支持
7. transition和animation的区别
transition是过渡属性强调过渡它的实现需要触发一个事件比如鼠标移动上去焦点点击等才执行动画类似于flash的补间动画设置一个开始关键帧一个结束关键帧animation是动画属性它的实现不需要触发事件设定好时间之后可以自己执行且可以循环一个动画它也类似于flash的补间动画但是它可以设置多个关键帧用keyframe定义完成动画。
8. display:none和visibility:hidden的区别
渲染树上display:none会让元素从渲染树中消失渲染时不会占据任何空间visibilityhidden会占据空间只是不可见是否是继承属性display是非继承属性子孙节点会随父节点消失修改显示子孙节点的属性也无法显示而visibility是继承属性子孙节点消失是因为子孙节点从父节点继承了hidden通过设置子孙节点visibility:visible可以让子孙节点显示。重排与重绘修改常规文档流的display通常会造成文档的重排但是修改visibility只会造成重绘读屏器如果使用读屏器设置display:none的内容不会被读取而visibility:hidden可以被读取
9. li与li之间有看不见的空白间隔是什么原因引起的如何解决
li原本是块级标签如下图 但当li设置为行内块元素或行元素时li标签与li标签之间会有看不见的空隙如下图 原因当元素是行内元素/行内块元素排版时浏览器会将元素之间的空白符如空格换行tab等渲染成一个空格处理上图的换行就被渲染成了空格因此会有上面的结果。
解决方案
li设置为float:left缺点很多容器是不适合设置浮动并且浮动会将display变为block。将所有li写在一行比较简单粗暴的方法但是代码会不太美观ul内的字符尺寸设置为0缺点可能会影响到其他字符其他字符需要额外重新设置font-size设置ul的字符间隔letter-spacing: -8px缺点跟上条一样
10. 什么是物理像素、逻辑像素、像素密度为什么移动端开发要用到2x、3x的图片