HTML和CSS常见问题整理
- 盒子模型
对于现代浏览器来说,css中指定的width就是content width。
对于IE5.x和6来说,在怪异模式中width等于content、左右padding和左右border。
其中padding
和margin
的4种写法。
1、上 右 下 左
padding:10px 5px 15px 20px;
2、上 右左 下
padding:10px 5px 15px;
3、上下 右左
padding:10px 5px;
4、四边一致
padding:10px;
-
display
和position
介绍-
display
规定元素应该生成的框的类型。
值 描述 flex 设置弹性容器 block 此元素将显示为块级元素,此元素前后会带有换行符。 inline 默认。此元素会被显示为内联元素,元素前后没有换行符。 inline-block 行内块元素。(CSS2.1 新增的值) none 此元素不会被显示。 list-item 此元素会作为列表显示。
-
position
: 指定一个元素在文档中的定位方式,top
,right
,bottom
和left
属性则决定了该元素的最终位置。
值 描述 absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。 fixed 生成绝对定位的元素,相对于浏览器窗口进行定位。 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。 relative 生成相对定位的元素,相对于其正常位置进行定位。 因此,"left:20" 会向元素的 left 位置添加 20 像素。 static 默认值。没有定位,元素出现在正常的流中 (忽略 top, bottom, left, right 或者 z-index 声明)。 inherit 规定应该从父元素继承 position 属性的值。
-
- CSS选择器分类 不同级别:排序:!important > 行内样式 > ID选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性。 同一级别:后写的会覆盖先写的。
- em和strong的区别
- em(emphasize)强调,表示语义上的强调,默认为斜体
- strong着重,表示重要性的一种强调,strong是比em更强烈的强调,默认为粗体
- 使元素消失的方法
-
opacity:0
:该元素隐藏起来,但不会改变页面布局,如果该元素绑定了事件会触发。 -
visibility:hidden
:该元素隐藏起来,但不会改变页面布局,不会触发该元素已经绑定的事件。 -
display:node
:把元素隐藏起来,并且会改变页面布局,可以理解成在页面中把该元素删掉。
-
- 如何画一个三角形 左右边框设置为透明,长度为底部边框的一半。左右边框长度必须设置,不设置则只有底部一条边框,是不能展示的。
.child{
width: 0;
height: 0;
border-bottom: 100px solid cyan;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
}
- 浮动相关
- 为什么要清除浮动
主要是为了解决父元素高度坍陷问题。
一个块级元素如果没有设置
height
,其height
由子元素撑开,对子元素使用了浮动之后,子元素就会脱离文档流。那么父元素中没有内容撑开其高度,这样父元素的height
就会被忽略。 - 如何清除 1、父元素设置overflow: hidden(少用) 2、clearfix:使用内容生成的方式清除浮动,不会破坏文档流。
- 为什么要清除浮动
主要是为了解决父元素高度坍陷问题。
一个块级元素如果没有设置
.clearfix: after { // :after选择器向选定的元素之后插入内容
content:""; // 生成内容为空
display: block; // 块级元素显示
clear:both; // 清除前面元素
}
- 行内元素居中
.parent {
text-align: center
}
- DIV居中问题 1、使用flex
.parent {
height: 600px;
border: 1px solid red;
display: flex;
justify-content: center;
align-items: center;
}
.child {
border: 1px solid green;
width: 300px;
}
- 2、使用transform
.parent{
height: 600px;
border: 1px solid red;
position: relative;
}
.child{
border: 1px solid green;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
- 3、使用margin-top -一半的高度
.parent{
height: 600px;
border: 1px solid red;
position: relative;
}
.child{
border: 1px solid green;
width: 300px;
height: 100px;
position: absolute;
top: 50%;
left: 50%;
margin-left: -150px;
margin-top: -50px;
}
- 4、使用绝对布局absolute和margin:auto
.parent{
height: 600px;
border: 1px solid red;
position: relative;
}
.child{
border: 1px solid green;
position: absolute;
width: 300px;
height: 200px;
margin: auto;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
- 三栏布局
要求两边两栏宽度固定,中间栏宽度自适应
- 方案一:position绝对定位法 center的div需要放到后面,将左右两边使用absolute定位,因为绝对定位使其脱离文档流,最后面的center会显示在正常文档流中,然后设置margin属性,留出左右两边的宽度。
.parent {
border: 1px solid red;
position: relative;
}
.child_left {
width: 100px;
height: 100px;
border: 1px solid gray;
position: absolute;
}
.child_right {
width: 100px;
height: 100px;
border: 1px solid green;
position: absolute;
right: 0;
}
// div在html中必须放在left和right之后
.child_center {
width: 100px;
height: 100px;
border: 1px solid black;
margin: auto
}
.parent {
border: 1px solid red;
position: relative;
}
.child_left {
width: 100px;
height: 100px;
border: 1px solid gray;
float: left;
}
.child_right {
width: 100px;
height: 100px;
border: 1px solid green;
float: right;
}
.child_center {
width: 100px;
height: 100px;
border: 1px solid black;
margin: auto
}
- 介绍BFC
BFC是CSS布局的一个概念,是一块独立的渲染区域,是一个环境,里面的元素不会影响到外部的元素 。
- 如何生成BFC:(即脱离文档流)
- 1、根元素,即HTML元素(最大的一个BFC) 2、float的值不为none 3、position的值为absolute或fixed 4、overflow的值不为visible(默认值。内容不会被修剪,会呈现在元素框之外)
- 5、display的值为inline-block、table-cell、table-caption
- BFC布局规则:
- 1.内部的Box会在垂直方向,一个接一个地放置。 2.属于同一个BFC的两个相邻的Box的margin会发生重叠 3.BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此, 文字环绕效果,设置float 4.BFC的区域不会与float box重叠。
- 5.计算BFC的高度,浮动元素也参与计算
- BFC作用:
- 1.自适应两栏布局 2.可以阻止元素被浮动元素覆盖 3.可以包含浮动元素---清除内部浮动 原理:触发父div的BFC属性,使下面的子div都处在父div的同一个BFC区域之内
- 4.分属于不同的BFC时,可以阻止margin重叠
- 如何生成BFC:(即脱离文档流)
- CSS3特性
vh
和vw
-
vh
相对于视窗的高度,视窗高度是100vh -
vw
相对于视窗的宽度,视窗宽度是100vw
这里是视窗指的是浏览器内部的可视区域大小,即
window.innerWidth/window.innerHeight
大小,不包含任务栏标题栏以及底部工具栏的浏览器区域大小。- 可以通过**@supports**来判断是否支持某个css属性。
-
@supports (property: value){
element {
property: value;
}
}
// 例
@supports (display: flex){
.flex {
display: flex;
float: none;
}
}
- 1599: [Usaco2008 Oct]笨重的石子
- 【LeetCode 136】 关关的刷题日记33 Intersection of Two
- 1218: [HNOI2003]激光炸弹
- Java多线程高并发学习笔记(一)——Thread&Runnable
- 1257: [CQOI2007]余数之和sum
- 【LeetCode 136】 关关的刷题日记34 Intersection of Two Arrays II
- 1724: [Usaco2006 Nov]Fence Repair 切割木板
- 【LeetCode 202】 关关的刷题日记35 – Leetcode 202. Happy Number
- JAVA多线程高并发学习笔记(三)——Callable、Future和FutureTask
- 算法模板——Trie树
- JavaScript Alert 函数执行顺序问题
- 算法模板——计算几何1(图形面积)
- 算法模板——线段树6(二维线段树:区域加法+区域求和)(求助phile)
- 【LeetCode 242】 关关的刷题日记36 Valid Anagram
- HTML 教程
- HTML 简介
- html div 标签介绍
- html span 标签介绍
- html a 超链接标签
- HTML Br换行标签介绍
- HTML P段落标签介绍
- HTML br与p标签区别
- Html H 标题标签
- html px em pt长度单位
- HTML form 标签
- HTML radio 单选框
- HTML B 加粗标签
- HTML strong加粗粗体标签
- HTML em 强调标签
- HTML i 斜体标签
- HTML u下划线标签
- HTML s 删除线标签
- Html img 图片标签
- Html上标注sup与下标注sub标签
- HTML nobr 禁止换行标签
- HTML hr 水平线标签
- HTML label 标签
- HTML input 标签
- HTML textarea 标签
- HTML select下拉列表标签
- HTML checkbox 多选框
- HTML font color 标签
- HTML iframe 框架标签
- HTML Table 表格
- HTML dl dt dd 标签
- HTML ol li有序列表标签
- HTML ul li 无序列表标签
- HTML 注释
- CSS 教程
- CSS 简介
- CSS 语法
- CSS Id 和 Class选择器
- CSS 样式的创建
- CSS background 背景介绍
- CSS 文本样式
- CSS font 字体
- CSS A 链接
- CSS ul ol列表样式
- CSS TABLE 样式
- CSS 框模型
- CSS border 边框
- CSS Outlines 轮廓
- CSS 外边距 Margin
- CSS Padding 内边距
- CSS 分组和嵌套选择器
- CSS 尺寸 (Dimension)
- CSS Display 属性
- CSS Position 定位
- CSS Float 浮动
- CSS 水平对齐(Horizontal Align)
- CSS 组合选择符
- CSS 伪类
- CSS 伪元素
- CSS 导航栏
- CSS 下拉菜单
- CSS 图片廊
- CSS 图像透明/不透明
- CSS sprite 图像拼合技术
- CSS 媒体类型
- CSS 属性选择器
- CSS 实例
- CodeForces 23B (图论 思维)
- JDBC 进阶操作
- Leetcode 面试题 01.06. 字符串压缩 (字符串模拟)
- Centos 7 安装 Git
- 受限平均生存时间(Restricted mean survival time)简析及R语言实现
- Leetcode 695. 岛屿的最大面积 (DFS)
- mskcc的vcf2maf极简解决方案代码分享
- 乘法逆元 线性递推阶乘求逆元、费马小定理、普适线性求逆元 欧拉定理结论
- 最新最全的varscan 软件找somatic mutation
- 【每周一库】- toml 一个toml文件解析库
- Rust FFI 编程 - bindgen 使用示例
- bug 回忆录(三)
- bug 回忆录(二)
- bug 回忆录(一)
- 曾经绊倒我的 “超级丑数”