本文介绍: 重排(回流):当增加或删除dom节点或者元素修改宽高时,会改变页面布局,那么就会重新构造dom树,然后再次渲染重绘计算好盒模型位置大小和其他一些属性之后,浏览器就会根据每个模型特性进行绘制浏览器渲染机制:当dom大小位置发生改变时进行重排,当dom样式如改变时进行重绘网格布局笔记网格布局表格布局可以看下面代码结果如下::独占一行宽度继承至父盒子多个元素会另起一行,可设置宽高以及和属性。:元素不会独占一行,宽度、高度内容撑开不可设置宽高,但可以设置平方向的和。:行内

1. CSS选择器及其优先级

!important > 行内样式 > id选择器 > 类/伪类/属性选择器 > 标签/伪元素选择器 > 子/后台选择器 > *通配符

2. 重排和重绘什么浏览器的渲染机制什么

重排(回流):当增加或删除dom节点或者给元素修改宽高时,会改变页面布局,那么就会重新构造dom树,然后再次渲染。

重绘计算好盒模型位置大小和其他一些属性之后,浏览器就会根据每个盒模型的特性进行绘制

浏览器的渲染机制:当dom大小位置发生改变时进行重排,当dom样式colorbackground-color改变时进行重绘

3. display哪些属性

属性 作用
none 元素不显示,并且会从文档流中移除
block 类型默认宽度为父元素宽度,可设置宽高,换行显示
inline 行内元素类型默认宽度为内容宽度,不可设置宽高,同行显示
inlineblock 默认宽度为内容宽度,可设置宽高,同行显示
table 此元素会作为块级表格显示,子元素可设置display:table-rowtable-cell
flex flex布局
grid 网格布局
inherit 规定应该从父元素继承display属性的值

网格布局笔记网格布局

表格布局可以看下面代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            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>
</head>

<body>
    <div class="table">
        <div class="row">
            <div class="cell">1</div>
            <div class="cell">2</div>
            <div class="cell">3</div>
        </div>
        <div class="row">
            <div class="cell">4</div>
            <div class="cell">5</div>
            <div class="cell">6</div>
        </div>
    </div>
</body>

</html>

结果如下

在这里插入图片描述

4. displayblockinlineinlineblock区别

block独占一行,宽度继承至父盒子多个元素会另起一行,可设置宽高以及marginpadding属性。

inline:元素不会独占一行,宽度、高度内容撑开不可设置宽高,但可以设置水平方向的marginpadding

inline-block:行内块,将对象设置为inline对象,但对象的内容作为block对象呈现,也就是说内容排列在一行内显示,但是可以设置宽高。

5. 隐藏的元素的方法哪些

  1. display: none
  2. visibility: hidden
  3. opacity: 0
  4. position: absolute 移到可视区之外
  5. z-index: 负值 定位的前提下,使其他元素盖住该元素,以此实现隐藏
  6. transformscale(0, 0) 将元素缩放为0,来实现元素的隐藏,元素仍占据位置

6. link和@import区别

两者都是外部引用css方式他们的区别如下

7. transitionanimation的区别

8. display:nonevisibility:hidden的区别

9. lili之间有看不见的空白间隔什么原因引起的?如何解决

li原本是块级标签,如下图

在这里插入图片描述

但当li设置为行内块元素或行元素时,li标签与li标签之间会有看不见的空隙,如下图

在这里插入图片描述

原因当元素是行内元素/行内块元素排版时,浏览器会将元素之间的空白符,如空格换行tab等渲染成一个空格处理,上图的换行就被渲染成空格,因此会有上面的结果。

解决方案

  1. li设置为float:left,缺点:很多容器是不适合设置浮动,并且浮动会将display变为block
  2. 所有li写在一行,比较简单粗暴的方法,但是代码会不太美观
  3. ul内的字符尺寸设置为0,缺点:可能影响到其他字符,其他字符需要额外重新设置fontsize
  4. 设置ul字符间隔letter-spacing: -8px,缺点跟上条一样

10. 什么物理像素逻辑像素、像素密度为什么移动开发用到@2x、@3x图片

原文地址:https://blog.csdn.net/weixin_43599321/article/details/134819059

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_47798.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注