1.display:none与visibility:hidden的区别
相同:他们都能让元素不可见
区别:
2.link与@import的区别
3.CSS有哪些继承属性
4.外边距折叠
外边距折叠就是margin-collapse
5.标准CSS盒子模型和低版本IE的盒子模型
6.CSS的选择器
7.CSS3新增伪类
8.如何居中div?如何居中一个浮动元素?如何让绝对定位的div居中
如果需要居中的元素为常规流中的lnline元素,为父元素设置text-align:center即可实现元素居中
如果需要居中的元素为block元素:1.为元素设置宽高 2.设置左右maigin为auto
如果需要居中的元素为浮动元素:1.为元素设置宽高 2.position:relative 3.浮动方向偏移量设置为50% 4.浮动方向上的margin设置为元素宽高的一半乘以-1
如果需要居中的元素为绝对定位元素:1.为元素设置宽高 2.设置左右偏移量都为0 3.设置左右外边距都为auto
9.如何竖直居中一个元素
10.display有哪些值以及他们的作用
11.position及relative和absolute定位原点
12.CSS3有哪些新特性
12.用css创建一个三角形的原理
把上左右三边的边框隐藏掉
#demo {
width: 0;
height: 0;
border-width: 20px;
border-style: solid;
border-color: transparent transparent red transparent;
}
13.一个满屏品字布局如何设计
14.li与li之间有空白间隙是什么原因引起的,如何解决
行框的排列会受到中间空白(回车/空格)等的影响,因为空格也属于字符,这些空白也会被应用样式占据空间,所以会有间隔,把字体大小设置为0就可以解决了
15.display:inline-block 什么时候会显示间隙?
16.display:inline-block间隙怎么解决
移除空格、使用margin负值、使用font-size:0、letter-spacing、word-spacing
17.css定义的权重
1.如果一个声明来自style属性而不是选择器,记做1或者a=1(在一个html文档中,元素"style"的值是样式表规则,这个规则中没有选择器,所以a=1,b=0,c=0,d=0)
2.选择器中id属性的个数记做b
3.选择器中其他属性以及伪类的个数记做c
4.选择器中元素以及伪元素的个数记做d
* {} /* a=0 b=0 c=0 d=0 -> 优先级= 0,0,0,0 */
li {} /* a=0 b=0 c=0 d=1 -> 优先级 = 0,0,0,1 */
li:first-line {} /* a=0 b=0 c=0 d=2 -> 优先级 = 0,0,0,2 */
ul li {} /* a=0 b=0 c=0 d=2 -> 优先级 = 0,0,0,2 */
ul ol+li {} /* a=0 b=0 c=0 d=3 -> 优先级 = 0,0,0,3 */
h1 + *[rel=up]{} /* a=0 b=0 c=1 d=1 -> 优先级 = 0,0,1,1 */
ul ol li.red {} /* a=0 b=0 c=1 d=3 -> 优先级 = 0,0,1,3 */
li.red.level {} /* a=0 b=0 c=2 d=1 -> 优先级 = 0,0,2,1 */
#x34y {} /* a=0 b=1 c=0 d=0 -> 优先级 = 0,1,0,0 */
style="" /* a=1 b=0 c=0 d=0 -> 优先级 = 1,0,0,0 */
a,b,c,d只是在各自位置里数字的累加,而不会越级
权重最高的是!imporant,会覆盖以上所有,行内样式也高不过他
18.CSS优先级算法如何计算
19.浮动与清除浮动
浮动的元素可以向左或者向右移动,直到他的外边缘碰到包含框或者另一个浮动元素的边框为止。由于浮动元素脱离了标准文档流,所以文档的标准文档流的块框表现的就像浮动元素不存在一样。浮动的元素就会漂浮在标准文档流的元素上
解决办法:
1.父级元素定义伪类:after和zoom
.clearfloat:after{
display:block;
clear:both;
content:"";
visibility:hidden;
height:0
}
.clearfloat{zoom:1}
2.在结尾处添加空div clear:both
Left
Right
3.父元素设置height
4.父元素设置overflow:hidden
5.父元素设置overflow:auto
6.父元素也一起浮动
7.父元素定义display:table
8.结尾处添加 br 标签 clear:both
20.box-sizing常用的属性有哪些,分别有什么作用
21.列举几种隐藏元素的方法
22.rgba() 和 opacity 的透明效果有什么不同
23.css 属性 content 有什么作用
content 属性专门应用在 before / after伪元素上,用于插入额外内容或样式
24.请解释一下 CSS3 的 Flexbox(弹性盒模型)以及适用场景
Flexbox 用于 不同尺寸屏幕中创建可自动扩展和收缩布局
25.请列出多种高等布局
26.圣杯布局的实现原理
要求:三列布局,中间主体内容前置且宽度自适应,两边内容定宽
好处:重要的内容放在文档流前面可以优先渲染
原理:利用相对定位、浮动、负边距布局,而不添加额外标签
.container {
padding-left: 150px;
padding-right: 190px;
}
.main {
float: left;
width: 100%;
height: 100vh;
}
.left {
float: left;
width: 190px;
height: 100vh;
margin-left: -100%;
position: relative;
left: -150px;
}
.right {
float: left;
width: 190px;
height: 100vh;
margin-left: -190px;
position: relative;
right: -190px;
}
27.什么是双飞翼布局?实现原理
双飞翼布局:对圣杯布局的改进,消除其相对定位布局的局限性
原理:主体元素设置左右边距,预留两翼位置。左右两栏使用浮动和负边距归位,消除相对定位
.container {
/*padding-left:150px;*/
/*padding-right:190px;*/
}
.main-wrap {
width: 100%;
float: left;
}
.main {
height: 100vh;
margin-left: 150px;
margin-right: 190px;
}
.left {
float: left;
width: 150px;
height: 100vh;
margin-left: -100%;
/*position: relative;*/
/*left:-150px;*/
}
.right {
float: left;
width: 190px;
height: 100vh;
margin-left: -190px;
/*position:relative;*/
/*right:-190px;*/
}
28.在 CSS 样式中常使用 px、em 在表现上有什么区别
29.为什么要初始化 CSS 样式
25.reset.css 和 Normalize.css 理解
reset.css 意为重置默认样式。HTML 中大部分标签元素在网页显示中都有一个默认属性值,通常为了避免重复定义元素样式,需要进行重置默认样式
Eric Meyer(CSS Reset)推荐
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
/* remember to define focus styles! */
:focus {
outline: 0;
}
/* remember to highlight inserts somehow! */
ins {
text-decoration: none;
}
del {
text-decoration: line-through;
}
/* tables still need ‘cellspacing=”0″‘ in the markup */
table {
border-collapse: collapse;
border-spacing: 0;
}
Normalize.css 只是一个很小的 css 文件,但他在默认的 HTML 元素样式上提供了跨浏览器的高度一致性。相比于传统的 css reset,Normalize.css 是一种现代化的,为 HTML5 准备的优质替代方案。
Normalize.css 的作用:
26.什么是 FOUC(Flash of Unstyled Content)?如何避免 FOUC
27.介绍使用过的 CSS 预处理器
28.CSS 优化、提高性能的方法
29.浏览器是怎样解析 CSS 选择器的
浏览器解析 CSS 选择器的方式是从右到左
30.在网页中的应该使用奇数还是偶数的字体
在网页中应该使用 偶数 字体
30.margin 和 padding 分别适合什么场景使用
31.抽离样式模块怎么写
CSS可以拆分为 2 部分:公共 CSS 和 业务 CSS
32.元素竖向的百分比设定是相对于容器的高度嘛
33.全屏滚动的原理是什么,用到了 CSS 的哪些属性
34.什么是响应式设计,响应式设计的基本原理是什么,如何兼容低版本的 IE
$(window).resize(function () {
screenRespond();
});
screenRespond();
function screenRespond(){
var screenWidth = $(window).width();
if(screenWidth <= 1800){
$("body").attr("class", "w1800");
}
if(screenWidth <= 1400){
$("body").attr("class", "w1400");
}
if(screenWidth > 1800){
$("body").attr("class", "");
}
}
35.什么是视差滚动效果,如何给每页做不同的动画
实现原理
36.a 标签上四个伪类的执行顺序是怎样的
LoVe HAte => “爱恨原则”
link > visited > hover > active
37.伪元素和伪类的区别和作用
伪元素:在内容的前后插入额外的元素或样式,但是这些元素实际上并不在文档中生成,他们只在外部显示可见,但不会在文档的源代码中找到他们,因此,称为 “伪” 元素。
eg:
p::before {content:"第一章:";}
p::after {content:"Hot!";}
p::first-line {background:red;}
p::first-letter {font-size:30px;}
伪类:将特殊的效果添加到特定选择器上。他是已有元素上添加类别的,不会产生新的元素。
eg:
a:hover {color: #FF00FF}
p:first-child {color: red}
38. ::before 和 :after 中双冒号和单冒号的区别
39.如何修改 Chrome 记住密码后自动填充表达的黄色背景
input[type = search] 搜索框右侧小图标如何美化
input[type="search"]::-webkit-search-cancel-button{
-webkit-appearance: none;
height: 15px;
width: 15px;
border-radius: 8px;
background:url("images/searchicon.png") no-repeat 0 0;
background-size: 15px 15px;
}
40.网站图片文件,如何点击下载,而非点击预览
下载 下载
41.iOS safari 如何阻止"橡皮筋效果"
$(document).ready(function(){
var stopScrolling = function(event) {
event.preventDefault();
}
document.addEventListener('touchstart', stopScrolling, false);
document.addEventListener('touchmove', stopScrolling, false);
});
42.你对 line-height 是如何理解的
43.line-height 三种赋值方式有何区别(带单位、纯数字、百分比)
44.设置元素浮动后,该元素的 display 值会如何变化
设置元素浮动后,该元素的 display 值自动变成 block
45.怎么让 Chrome 支持小于 12px 的文字
.shrink{
-webkit-transform:scale(0.8);
-o-transform:scale(1);
display:inline-block;
}
46.让页面里的字体变清晰,变细用 CSS 怎么做(IOS手机浏览器字体齿轮设置)
-webkit-font-smoothing: antialiased;
47.font-size 属性 oblique 是什么意思
font-size:oblique; 使没有 italic 属性的文字实现倾斜
48.如果需要手写动画,你认为最小时间间隔是多久
16.7ms
多数显示器默认频率是 60Hz,即 1秒刷新 60 次,所以理论上最小间隔:1s / 60 * 1000 = 16.7ms
49.overflow:scroll 时不能平滑滚动的问题怎么处理
监听滚轮事件,然后滚动到一定距离时用 jquery 的 animate 实现平滑效果
50.一个高度自适应的 div,里面有两个 div,一个高度 100px,希望另一个填满剩下的高度
51.CSS 中类 class 和 id 的区别
对于 CSS 而言,id 和 class 都是选择器,唯一不同的地方在于权重不同。
对于 html 而言,id 和 class 都是 dom 元素的属性值。不同的地方在于 id 属性的值是唯一的,而 class 属性可以重复。
id 还有一个特性是锚点功能,当浏览器地址栏有一个 #xxx,页面会自动滚到 id = xxx 的元素上面
52.如何优化网页的打印样式
其中 media 指定的属性就是设备,显示器上就是 screen,打印机则是 print,电视是 tv,投影仪是 projection。
打印样式注意事项:
53.请问为何要使用 transform 而非 absolute positioning
反之
54.请解释 CSS sprites,以及你要如何在页面或者网站中实现它
55.SVG 样式的书写
SVG | 等效的 CSS |
---|---|
fill | background-color 或 color |
fill-opacity | background-color 或 color 设置 rgba/hsla |
opacity | opacity |
stroke | border-color |
stroke-width | border-thickness |
stroke-opacity | border-color 设置 rgba |
rx,ry | border-radius |
下面的属性在 SVG 和 CSS 中是一样的,只是在 SVG 的 transformations 和 dimensions 中稍有区别:
56.如果设计中使用了非标准的字体,该如何去实现