05 css选择器以及优先级?说盒子模型的了解?知道BFC?三栏布局的几种方式? CSS的几种预处理器?有几种让盒子水平垂直居中的方法?

1 你真的掌握样式优先级和选择器优先级吗?

  • 考点:选择器以及优先级

样式优先级

  • 最近的祖先样式比其他祖先样式优先级高

  • "直接样式"比"祖先样式"优先级高

  • 选择器优先级

    内联样式 > id选择器 > 类选择器 = 属性选择器[title='c'] = 伪类选择器(只有一个冒号) > 标签选择器 = 伪元素选择器(二个冒号)
  <style>
    [title] {
      color: red
    }

    p[title] {
      color: pink;
    }

    [title='c'] {
      color: red
    }
  </style>

<body>
  <h1 title="a">属性选择器1</h1>
  <p title="a">属性选择器2</p>
  <div title="c">属性选择器3</div>
</body>

 

组合选择符

  • 分类

    • 后代选择符

      .a .b{}
    • 子选择符

      .a > .b{}
    • 相邻选择符

       .a + .b {}

选择符优先级

 1.计算id选择器的个数(a)
2.计算类选择器、属性选择器、伪类选择器的个数(b)
3.计算标签选择器、伪元素选择器的个数(c)​对比a、b、c的个数,相等则比较下一个若都相等,则按照“就近原则”比较

属性后面加 !important 拥有最高优先级,若两个样式都有此设置,则对比选择器优先级

 2.说说对盒子模型的了解和实际开发中需要注意的点

  • 标准盒模型 box-sizing:content-box

    • 宽高包含 content + padding + border

  • 怪异盒模型 box-sizing:border-box

    • 宽高只包含 content

3. 你知道CSS样式中的 BFC吗?

简介:对块级格式化上下文的理解

什么是BFC

一个块格式化上下文(block formatting context) 是Web页面的可视化CSS渲染出的一部分。它是块级盒布局出现的区域,也是浮动层元素进行交互的区域。

BFC 的特性及解决问题

  • 内部的盒子会按照垂直方向一个个排列
  • 同一个 BFC 下的相邻块级元素会发生外边距折叠,创建新的 BFC 包含其中一个元素可以避免(解决外边距重叠)
  • 设置了 BFC 的区域不会和浮动元素重叠(解决浮动元素覆盖)
  • BFC 中有浮动元素时,该浮动元素的高度也会被计算其中(解决高度塌陷)
  • (解决文字环绕)

如何触发BFC(推荐使用overflow:hidden,其他的容易改变排版)

  • 设置float浮动
  • overflow的值是hidden、auto或者scroll,而不是visible
  • position 的值为 absolute 或 fixed
  • display:table | inline-block | flex | grid
<head> 
<style>
    .a {
      width: 100px;
      height: 100px;
      background-color: red;
      margin-bottom: 40px;
    }

    .b {
      width: 100px;
      height: 100px;
      background-color: pink;
      margin-top: 20px;
    }

    .c {
      /* 开启BFC */
      overflow: hidden;
    }

    .a1 {
      width: 100px;
      height: 100px;
      background-color: red;
      float: left;
    }

    .a2 {
      width: 100px;
      height: 100px;
      background-color: pink;
      /* 开启BFC */
      overflow: hidden;
    }

    .a3 {
      /* 开启BFC */
      overflow: hidden;
      background-color: rgb(136, 0, 255);
    }

    .a4 {
      width: 100px;
      height: 100px;
      background-color: rgb(0, 255, 102);
      float: left;
    }

    .box {
      width: 210px;
      border: 1px solid #000;
    }

    .img {
      width: 100px;
      height: 100px;
      background: #696;
      float: left;
      margin-right: 5px
    }

    .info {
      /* 开启BFC */
      overflow: hidden;
      background: #ccc;
      color: #fff;

    }
  </style>
</head>

<body>
  <!-- 解决外边距塌陷 重叠 -->
  <div class="c">
    <div class="a"></div>
  </div>
  <!-- <div class="a"></div> 外边距塌陷-->
  <div class="b"></div>

  <!-- 解决浮动元素重叠 -->
  <div class="a1"></div>
  <div class="a2"></div>

  <!-- 解决高度塌陷 -->
  <div class="a3">
    <div class="a4"></div>
  </div>

  <!-- 解决文字环绕 -->
  <div class="box">
    <div class="img">image</div>
    <p class="info">
      对css有了解的朋友肯定都知道盒式模型这个概念,对一个元素设置css,首先需要知道这个元素是block还是inline类型。而BFC就是用来格式化块级盒子,同样管理inline类型的盒子还有IFC,以及其他的FC。那首先我们就来看看FC的概念。
    </p>
  </div>
</body>

4 说说CSS实现三栏布局的几种方式

  • flex布局
  • 浮动+margin
  • 浮动+BFC
<head>
  <style>
    .box {
      display: flex;
    }

    .a {
      width: 100px;
      height: 100px;
      background-color: red;
    }

    .b {
      flex: 1;
      height: 100px;
      background-color: pink;
    }

    .c {
      width: 100px;
      height: 100px;
      background-color: red;
    }

    .a1 {
      width: 100px;
      height: 100px;
      background-color: red;
      float: left;
    }

    .b1 {
      width: 100px;
      height: 100px;
      background-color: red;
      float: right;
    }

    .c1 {
      /* 宽度去掉 加margin */
      /* width: 100px; */
      height: 100px;
      background-color: pink;
      margin: 0 100px;
    }

    .a2 {
      width: 100px;
      height: 100px;
      background-color: red;
      float: left;
    }

    .b2 {
      width: 100px;
      height: 100px;
      background-color: red;
      float: right;
    }

    .c2 {
      overflow: hidden;
      height: 100px;
      background-color: pink;
    }
  </style>
</head>

<body>
  <!--1. flex布局  -->
  <div class="box">
    <div class="a"></div>
    <div class="b"></div>
    <div class="c"></div>
  </div>
  <!-- 2. 浮动+margin -->
  <div class="a1"></div>
  <div class="b1"></div>
  <div class="c1"></div>
  <!-- 3. 浮动+BFC -->
  <div class="a2"></div>
  <div class="b2"></div>
  <div class="c2"></div>
</body>

5 CSS中的预处理器有几种以及区别?

什么是预处理器

  • 定义了专门的编程语言,增加了编程的特性,生成CSS文件

  • CSS代码更加简洁、适应性更强、可读性更佳,更易于代码的维护等

常见的css预处理器

  • less

  • sass

  • stylus

区别

  • 三种预处理器的使用语法都基本一致
  • 变量、嵌套、运算符、颜色函数、导入、继承等
  • stylus的写法会特别点,比如:不需要加括号

预处理器的能力

  • 嵌套反映层级和约束

  • 变量和计算减少重复代码

  • extend和mixin代码片段

  • 循环适用于复杂有规律的样式

  • import css文件模块化

6 你知道几种让盒子水平垂直居中的方法?

  1. flex布局
  2. 定位+margin:auto
  3. 定位+ transform:translate(-50%,-50%); // 未知宽高
<head>
  <style>
    .box {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 200px;
      height: 200px;
      background-color: pink;
      border: 5px solid #ccc;
    }

    .a {
      width: 50px;
      height: 50px;
      line-height: 50px;
      text-align: center;
      background-color: red;
    }

    .box1 {
      position: relative;
      width: 200px;
      height: 200px;
      background-color: pink;
      border: 5px solid #ccc;
    }

    .a1 {
      margin: auto;
      top: 0;
      left: 0;
      bottom: 0;
      right: 0;
      position: absolute;
      width: 50px;
      height: 50px;
      line-height: 50px;
      text-align: center;
      background-color: red;
    }

    .box2 {
      position: relative;
      width: 200px;
      height: 200px;
      background-color: pink;
      border: 5px solid #ccc;
    }

    .a2 {
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      width: 50px;
      height: 50px;
      line-height: 50px;
      text-align: center;
      background-color: red;
    }
  </style>
</head>

<body>
  <!--1. flex布局  -->
  <div class="box">
    <div class="a">a</div>
  </div>
  <!--2. margin 和定位  -->
  <div class="box1">
    <div class="a1">a</div>
  </div>
  <!--3. 定位和trasfrom  -->
  <div class="box2">
    <div class="a2">a</div>
  </div>

</body>

 


http://www.niftyadmin.cn/n/3545.html

相关文章

【python】内置库函数大集合 ❢ 这不得点赞收藏一波~

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ Python内置库这么多&#xff0c;要不要全部都学&#xff0c;记不住啊 那怎么办呢&#xff1f; 俗话说的好&#xff1a;好记性不如烂笔头 就算脑子再好使&#xff0c;但它毕竟存储有限&#xff0…

C++入门学习3-指针与字符数组,函数,指针数组

c入门学习3char型指针的使用p*p*p与p与[整型指针指向整型数组]的区别指针与函数的使用指向函数的指针空指针调用函数从函数中返回指针一维数组和二维数组的类比CHAR型指针数组关于&achar型指针的使用 char型指针可以直接指向一个字符串&#xff0c;如下 char s[]{a,b,c};…

Java二叉搜索树

1.二叉搜索树的概念 二叉搜索树是一颗特殊的二叉树: 它的左子树的所有节点的值,均小于根节点; 它的右子树的所有节点的值,均大于根节点. 二叉搜索树的中序遍历总是有序的!!! 二叉搜索树查找数据的时间复杂度为 O(logN) ,当树为单分支树时,时间复杂度达到 O(N) . 2.二叉搜…

项目计划不要拖,要赶紧排

案例 业主:这个项目很急,赶紧干活吧,明天就安排人来干活。 于是,项目经理问公司要来资源,第二天就投入到项目里。 公司只有一个项目,这样搞,项目能顺利实施,业主满意,公司老板感觉这种方法不错哦。 当公司项目越来越多了,员工也越来越多的时候,混乱的场面就出现…

快速上手分布式版本控制工具Git

文章目录前言一.分布式版本控制工具Git二.Git基本指令1.查看用户信息2.获取Git仓库3.工作区、暂存区、版本库4.查看文件修改状态&#xff08;status&#xff09;5.添加工作区到暂存区&#xff08;add&#xff09;6.提交暂存区到本地仓库&#xff08;commit&#xff09;7.查看日…

FS9401符合 Qi 标准的 5W无线充电接收IC

资料介绍 FS9401符合 Qi 标准的 5W 无线充电接收电路 概述 FS9401 是一颗单芯片无线充电接收电路&#xff0c;最大支持 7.2W&#xff08;6V/1.2A&#xff09;无线功率传输。符合WPC Qi V1.2.4 标准&#xff0c;集成高效全同步整流、高效线性稳压结构以及数字控制和通信模块&…

渗透测试 | 域名信息收集

0x00 前言 信息收集可以说是在渗透测试中最重要的一部分&#xff0c;上文对 IP 信息收集做了一个简要的叙述&#xff0c;认识了 CDN 技术和网络空间搜索引擎。但是很多网站的主站因为访问流量过大的原因通常会使用 CDN 技术&#xff0c;同时也可以有效防止 DDOS 攻击。在域名信…

前端优化-前端性能优化

最近前端群里的小伙伴问我&#xff0c;老板喊我做前端优化我该怎么去优化呢&#xff1f;。我思考了了一下&#xff0c;提出了以下几点建议… 一、思考 我们为什么要优化呢&#xff0c;从哪几个方向去优化呢 我们常见的一些问题是不是 页面卡顿&#xff1f;首屏加载很慢&#x…