首页 > 其他分享 >20230829-面试题html+css5道题记录

20230829-面试题html+css5道题记录

时间:2023-09-02 10:37:32浏览次数:45  
标签:20230829 BFC 面试题 道题 块级 模型 元素 行内 CSS


css预处理工具

参考答案:
CSS 预处理器是一个能让你通过预处理器自己独有的语法来生成CSS的程序。
css预处理器种类繁多,三种主流css预处理器是Less、Sass(Scss)及Stylus;它们各自的背景如下: Sass:
2007年诞生,最早也是最成熟的CSS预处理器,拥有ruby社区的支持和compass这一最强大的css框 架,目前受LESS影响,已经进化到了全面兼容CSS的SCSS(SCSS 需要使用分号和花括号而不是换行和缩进)。
Less:
2009年出现,受SASS的影响较大,但又使用CSS的语法,让大部分开发者和设计师更容易上手,在
ruby社区之外支持者远超过SASS。其缺点是比起SASS来,可编程功能不够。优点是简单和兼容CSS, 反过来也影响了SASS演变到了SCSS的时代,著名的Twitter Bootstrap就是采用LESS做底层语言的。
Stylus:
2010年产生,来自Node.js社区,主要用来给Node项目进行CSS预处理支持,在此社区之内有一定支持 者,在广泛的意义上人气还完全不如SASS和LESS。
比较
在使用 CSS 预处理器之前最重要的是理解语法,幸运的是基本上大多数预处理器的语法跟 CSS 都差不多。
首先 Sass 和 Less 都使用的是标准的 CSS 语法,因此如果可以很方便的将已有的 CSS 代码转为预处理器代码,默认 Sass 使用 .sass 扩展名,而 Less 使用 .less 扩展名。
这是一个再普通不过的,不过 Sass 同时也支持老的语法,就是不包含花括号和分号的方式:
而 Stylus 支持的语法要更多样性一点,它默认使用 .styl 的文件扩展名,下面是 Stylus 支持的语法
可以在同一个样式单中使用不同的变量,例如下面的写法也不会报错:

行内元素和块级元素什么区别,然后怎么相互转换

参考答案: 块级元素
1.总是从新的一行开始,即各个块级元素独占一行,默认垂直向下排列;
2.高度、宽度、margin及padding都是可控的,设置有效,有边距效果;
3.宽度没有设置时,默认为100%;
4.块级元素中可以包含块级元素和行内元素。
行内元素
1.和其他元素都在一行,即行内元素和其他行内元素都会在一条水平线上排列;
2.高度、宽度是不可控的,设置无效,由内容决定。
3.根据标签语义化的理念,行内元素最好只包含行内元素,不包含块级元素。
转换
当然块级元素与行内元素之间的特性是可以相互转换的。HTML可以将元素分为行内元素、块状元素和 行内块状元素三种。
使用display属性能够将三者任意转换:
(1)display:inline;转换为行内元素;
(2)display:block; 转 换 为 块 状 元 素 ; (3)display:inline-block;转换为行内块状元素。

块元素哪些属性可以继承?

参考答案:
text-indent、text-align、visibility、cursor

盒子模型

参考答案:
1.概念
CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括: 外边距(margin) 、 边框
(border) 、 内边距(padding) 、 实际内容(content) 四个属性。
CSS盒模型:标准模型 + IE模型
1.1W3C盒子模型(标准盒模型)
1.2IE盒子模型(怪异盒模型)
2.标准模型和IE模型的区别计算宽度和高度的不同
标准盒模型:盒子总宽度/高度 = width/height + padding + border + margin 。( 即
width/height 只是内容高度,不包含 padding 和 border 值 )
IE盒子模型:盒子总宽度/高度 =
border) + margin。( 即 width/height 包含了 padding 和 border 值 )
3.CSS如何设置这两种模型
标准: box-sizing: content-box; ( 浏览器默认设置 ) IE: box-sizing: border-box;
4.JS如何获取盒模型对应的宽和高
(1)dom.style.width/height 只能取到行内样式的宽和高,style 标签中和 link 外链的样式取不到。
(2)dom.currentStyle.width/height (只有IE兼容)取到的是最终渲染后的宽和高
(3)window.getComputedStyle(dom).width/height 同(2)但是多浏览器支持,IE9 以上支持。
(4)dom.getBoundingClientRect().width/height 也是得到渲染后的宽和高,大多浏览器支持。IE9 以上支持,除此外还可以取到相对于视窗的上下左右的距离。
(6) dom.offsetWidth/offsetHeight 包括高度(宽度)、内边距和边框,不包括外边距。最
常用,兼容性最好。

BFC: 块级格式化上下文

BFC基本概念: BFC 是
不会影响到外部的元素 。

布局的一个概念,是一块独立的渲染区域,是一个环境,里面的元素

父子元素和兄弟元素边距重叠,重叠原则取最大值。空元素的边距重叠是取
的最大值。

BFC原理(渲染规则|布局规则):

与 padding
(1)内部的 会在垂直方向,从顶部开始一个接着一个地放置;
(2) Box 垂直方向的距离由
margin 会发生重叠;
(外边距)决定,属于同一个
的两个相邻 的
(3)每个元素的
的左边, 与包含块
的左边相接触,(对于从左到右
的格式化,否则相反)。即使存在浮动也是如此;
(4)BFC 在页面上是一个隔离的独立容器,外面的元素不会影响里面的元素,反之亦然。文字环绕效果,设置 float ;
(5)BFC 的区域不会与 重叠(清浮动);
(6)计算 的高度时,浮动元素也参与计算。
5.3CSS在什么情况下会创建出BFC(即脱离文档流)
0、根元素,即 HTML 元素(最大的一个 BFC )
1、浮动( float 的值不为 none )
2、绝对定位元素( position 的值为 absolute 或 fixed )
3、行内块( display 为 inline-block )
4、表格单元( display 为 table、table-cell、table-caption、inline-block 等 HTML
)
5、弹性盒( )
6、默认值。内容不会被修剪,会呈现在元素框之外( overflow 不为 visible )
5.4BFC作用(使用场景)
1、自适应两(三)栏布局(避免多列布局由于宽度计算四舍五入而自动换行)
2、避免元素被浮动元素覆盖
3、可以让父元素的高度包含子浮动元素,清除内部浮动(原理:触发父 的 属性,使下面的子
都处在父 div 的同一个区域之内)
4、去除边距重叠现象,分属于不同的


标签:20230829,BFC,面试题,道题,块级,模型,元素,行内,CSS
From: https://blog.51cto.com/u_15460007/7330762

相关文章

  • 20230825-面试题html+css5篇简单记录
    html标签的类型(head,body,!Doctype)他们的作用是什么!DOCTYPE标签:它是指示web浏览器关于页面使用哪个HTML版本进行编写的指令.head:是所有头部元素的容器,绝大多数头部标签的内容不会显示给读者该标签下所包含的部分可加入的标签有base,link,meta,script,style和title......
  • android面试题:谈谈对Java中多态的理解
     Java中的多态是面向对象编程的一个重要特征,它允许同一个类型的对象在不同的情况下表现出不同的行为。多态是Java语言中实现代码复用、提高代码可维护性和可扩展性的重要手段。 多态的实现基于两个核心概念:继承和方法重写。在Java中,子类可以继承父类的方法,并且可以重写(覆......
  • 面试题目3
    string,h下的库函数strcat(str1,str2)将str2的字符串追加到str1中,追加方式为查找\0strncat(str1,str2,6)将str2中的6个字符追加到str1中,不需要查找\0,可以同字符串追加。strstr(str1,str2)查找字符串,判断字符串str1中是否含有str2#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>......
  • 每天一道面试题:对象引用及垃圾回收
    先来看题目 (多选)下面哪些描述是正确的:()【文章末尾有答案】1publicclassTest{2publicstaticclassA{3privateBref;4publicvoidsetB(Bb){5ref=b;6}7}8publicstaticClassB{9......
  • Android并发编程高级面试题汇总(含详细解析 十五)
    Android并发编程高级面试题汇总最全最细面试题讲解持续更新中......
  • 《看了受制了》第二天,5道题,合计10道题
    2023年8月27日受制了系列第二天今天的题,是周赛的中等难度题,比较ez。慢慢进步,争取在12月左右可以ak周赛!!ACWING5140循环串题目理解就是一个长度为n的串,这个串由若干段长度为k的字母组成。我们只需要循环n次,不停输出长度为k的字符串即可。代码实现#include<bits/stdc++.h>u......
  • GDB基本操作和常见面试题
    目录GDB基本操作和常见面试题基本操作启动查看断点运行退出常见面试题GDB基本操作和常见面试题基本操作GDB是GNU开源组织发布的一个强大的Unix/Linux下的程序调试工具。作用:1、启动用户程序后,可以按照用户的要求随意运行程序2、可让被调试的程序在用户所设定的断点处停住3......
  • 【备战金九银十】2023年最全Android岗1000+面试题及答案
    前言马上又准备迎接金九银十了,各大厂,国央企纷纷加入抢人大战竞争尤为激烈!但是,相比求职者来说岗位数量还不是很多,自然而然HR们就开始优中选优,激化“内卷”!如何在众多面试者中脱颖而出?对于很多程序员来说是目前最重要的事。因此本篇通过收集腾讯T4总结的2023年最全的Android岗面试......
  • Linux运维工程师面试题(4)
    Linux运维工程师面试题(4)祝各位小伙伴们早日找到自己心仪的工作。持续学习才不会被淘汰。地球不爆炸,我们不放假。机会总是留给有有准备的人的。加油,打工人!1redis常用的数据类型String:字符串,最基础的数据类型List:列表Hash:哈希对象Set:集合SortedSet:有序集合,Set的基......
  • Linux运维工程师面试题(4)
    目录Linux运维工程师面试题(4)1redis常用的数据类型2redis数据持久化有几种,区别是什么,如何选择3redis有哪些架构模式4什么是缓存雪崩?如何解决?5什么是缓存穿透?如何解决?6什么是缓存击穿?如何解决?7redis为什么这么快8Redis常用命令9SQL语句分类10多表查询Linux运维工程......