HTML&CSS面试高频考点(一)    

6. W3C盒模型与怪异盒模型

怪异盒模型下盒子的大小=width(content + border + padding) + margin,即真实大小。

*参考标准模式与兼容模式的区别,兼容模式下为怪异盒模型。

*注意box-sizing可以改变盒模型(box-sizing:border-box即为怪异盒模型)。

7. 水平垂直居中的方法

(1)定宽居中

1. absolute + 负margin

//父元素
position: relative;
//子元素
position: absolute;
top: 50%;
left: 50%;
//margin设置自身一半的距离
margin-top: -50px;
margin-left: -50px;

2. absolute + margin: auto

//父元素
position: relative;
//子元素
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;

3. absolute + calc

//父元素
position: relative;
//子元素
position: absolute;
//减去自身一半的宽高
top: calc(50% - 50px);
left: calc(50% - 50px);

*calc() 函数用于动态计算长度值。

4. min-height: 100vh + flex + margin:auto

main{
  min-height: 100vh;
/* vh相对于视窗的高度,视窗高度是100vh */
  /* “视区”所指为浏览器内部的可视区域大小,
  不包含任务栏标题栏以及底部工具栏的浏览器区域大小。 */
  display: flex;
}
div{
  margin: auto;
}

(2)不定宽居中

1. absolute + transform

//父元素
position: relative;
//子元素
position: absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);

2. line-height

//父元素
.wp {
text-align: center;
line-height: 300px;
}
//子元素
.box {
display: inline-block;
vertical-align: middle;
line-height: inherit;
text-align: left;
}

3. flex布局

display: flex;//flex布局
justify-content: center;//使子项目水平居中
align-items: center;//使子项目垂直居中

4. table-cell布局

因为table-cell相当与表格的td,无法设置宽和高,所以嵌套一层,嵌套一层必须设置display: inline-block

<div class="box">
<div class="content">
<div class="inner">
</div>
</div>
</div> .box {
//只有这里可以设置宽高
display: table; //这是嵌套的一层,会被table-cell覆盖
}
.content {
display: table-cell;
vertical-align: middle;//使子元素垂直居中
text-align: center;//使子元素水平居中
}
.inner {
display: inline-block; //子元素
}

8. BFC

前文链接:点击这里

BFC:Block formatting context(块级格式化上下文),是一个独立的渲染区域,只有Block-level box参与,与外部区域毫不相干。

  • block-level box:display属性为block, list-item, table的元素。
  • inline-level box:display属性为inline, inline-box, inline-table的元素。

(1)BFC的布局规则

  • 内部box在垂直方向一个个放置;
  • 同一个BFC的两个相邻box的margin会发生重叠;
  • 每个盒子的margin左边与包含块的border左边相接触,即使存在浮动也是如此;
  • BFC区域不会和float box重叠;
  • 计算BFC高度时,浮动元素也参与计算。

(2)开启BFC的方法

  • float的值不是none
  • position的值不是static或relative
  • display的值是inline-block, table-cell, flex, table-caption或inline-flex
  • overflow的值不是visible

(3)BFC的作用

1. 避免margin塌陷

根据BFC的布局规则2,我们可以通过设置两个不同的BFC的方式解决margin塌陷的问题。

2. 自适应两栏布局

根据BFC的布局规则3和4,我们将右侧div开启BFC就可以形成自适应两栏布局。

.left {
float: left; //左侧浮动
}

.left {
float: left;
}
.right {
overflow: hidden; //开启BFC
}

3. 清除浮动

当不给父节点设置高度的时候,如果子节点设置浮动,父节点会发生高度塌陷。这个时候就要清除浮动。

根据规则5,只需给父元素激活BFC就可以达到目的。

.par {
overflow: hidden; //父元素开启BFC
} .child {
float: left; //子元素浮动
}

9. 清除浮动

这篇有写:点这里

10. position属性

这篇有写:点这里

HTML&CSS面试高频考点(二)的更多相关文章

  1. HTML&CSS面试高频考点(三)

    11. CSS隐藏元素的方式 /*占据空间,无法点击*/ visibility: hidden; position: relative; top: -999em; /* 不占据空间,无法点击 */ p ...

  2. HTML&CSS面试高频考点(一)

    1. 行内元素/块级元素 非替换元素/替换元素 行内元素(内联元素):a, abbr(缩写), acronym(只取首字母缩写), b, bdo(文本方向), big, br, cite(引用), c ...

  3. 「面试高频」二叉搜索树&双指针&贪心 算法题指北

    本文将覆盖 「字符串处理」 + 「动态规划」 方面的面试算法题,文中我将给出: 面试中的题目 解题的思路 特定问题的技巧和注意事项 考察的知识点及其概念 详细的代码和解析 开始之前,我们先看下会有哪些 ...

  4. CSS面试复习(二):CSS的使用

    一.CSS基础 1.选择器 选择器{ 属性:值: 属性:值 } 作用:用于匹配HTML元素.分类和权重.解析方式和性能.值得关注的选择器 分类: 元素选择器a{} 伪元素选择器::before{} 类 ...

  5. 数仓面试高频考点--解决hive小文件过多问题

    本文首发于公众号:五分钟学大数据 小文件产生原因 hive 中的小文件肯定是向 hive 表中导入数据时产生,所以先看下向 hive 中导入数据的几种方式 直接向表中插入数据 insert into ...

  6. 《MySQL面试小抄》索引考点二面总结

    <MySQL面试小抄>索引考点二面总结 我是肥哥,一名不专业的面试官! 我是囧囧,一名积极找工作的小菜鸟! 囧囧表示:小白面试最怕的就是面试官问的知识点太笼统,自己无法快速定位到关键问题点 ...

  7. Java秋招面试复习大纲(二):Spring全家桶+MyBatis+MongDB+微服务

    前言 对于那些想面试高级 Java 岗位的同学来说,除了算法属于比较「天方夜谭」的题目外,剩下针对实际工作的题目就属于真正的本事了,热门技术的细节和难点成为了面试时主要考察的内容. 这里说「天方夜谭」 ...

  8. C++面试高频题

    作者:守望者1028链接:https://www.nowcoder.com/discuss/55353来源:牛客网 面试高频题: 校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我也忘记了 ...

  9. 总结CSS面试题目的考察点及常见布局问题整理

    整理网上流传的若干份面试题目,突发奇想,总结关于CSS面试题目的考察点,发现问题大多围绕几个属性和几种题目,水平有限,仅供参考. 写这个博文内心有种莫名奇妙的自我谴责感,实在不应该把面试层叠样式“应试 ...

随机推荐

  1. Alpha冲刺 —— 5.5

    这个作业属于哪个课程 软件工程 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 Alpha冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.会议内容 1.展 ...

  2. 【jQuery】全功能轮播图的实现(本文结尾也有javascript版)

    轮播图 图片自动切换(定时器): 鼠标悬停在图片上图片不切换(清除定时器) 鼠标悬停在按钮上时显示对应的图片(鼠标悬停事件) 鼠标悬停在图片上是现实左右箭头 点击左键切换到上一张图片,但图片为第一张时 ...

  3. python(3.x)自动化全栈开发100天集训计划(跟上进度,到一个新高度)——day1

            Day1 目录: Python介绍 * 了解Python的特点.发展史 * 介绍Python广泛的应用领域和前景 第一个Python程序 * 掌握Python代码的2种执行方式 变量 ...

  4. 我终于搞清了啥是 HTTPS 了

    引言 最近上海连续下了一周雨,温度一夜之间回到解放前,穿夏装的我被冻得瑟瑟发抖,躲在家里哪也不想去. 在家百无聊赖的刷着网页,看到公众号后台的留言,有同学问我 HTTP 和 HTTPS 有啥区别? 这 ...

  5. Java实现 LeetCode 653 两数之和 IV - 输入 BST(递归,找差值)

    653. 两数之和 IV - 输入 BST 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true. 案例 1: 输入: 5 / \ 3 6 / ...

  6. Java实现 LeetCode 49 字母异位词分组

    49. 字母异位词分组 给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例: 输入: ["eat", "tea", & ...

  7. Android如何使用SQLlite数据库

    先写一个类,继承自SQLiteOpenHelper public class MyDatabaseHelper extends SQLiteOpenHelper { //声明一个Context pri ...

  8. Java实现硬币收集问题

    1 问题描述 在n*m格木板中放有一些硬币,每格的硬币数目最多为一个,在木板左上方的一个机器人需要收集尽可能多的硬币并把它们带到右下方的单元格.每一步,机器人可以从当前的位置向右移动一格或向下移动一格 ...

  9. java实现蓝桥杯密码脱落

    一 问题描述 X星球的考古学家发现了一批古代留下来的密码. 这些密码是由A.B.C.D 四种植物的种子串成的序列. 仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串). 由于年代久远 ...

  10. DeDecms远程写入漏洞webshell (dedecms漏洞)

    解释下Apache解析文件的流程: 当Apache检测到一个文件有多个扩展名时,如1.php.bak,会从右向左判断,直到有一个Apache认识的扩展名.如果所有的扩展名Apache都不认识,那么变会 ...