如何清除一个标签的子标签的浮动
清除浮动的几种方法:
- 父元素有高度,此时就没有浮动的影响了
- 父元素如果不愿意设置固定死的高度,而是自动适配,就写
overflow:hidden;_zoom:1;
- 后面的元素父盒子加上
clear:both;
盒子还是没有高度,margin
失效; - 两个盒子之前加上一个
<div class="cl"></div> .fl{clear:both}
,隔墙法,盒子还是没有高度,但是marign
有用。 - 盒子加上
::after{content:"",clear:both;}
,内墙法,这个元素自己最后的子元素是一个标准流元素,所以一下子给这个父盒子撑高了。
描述一下浮动会造成什么影响,如何居中一个浮动元素
- 【脱标】:浮动的元素脱离标准文档流。【贴边】:左浮动就会紧贴父元素左边,右浮动贴右边。【字围】:文字会环绕这个浮动元素。【收缩】:不区分行内元素和块级元素了,原来的行内元素现在可以设置宽度和高度,原来的块级元素如果不写width现在会自动缩进为内容宽度。
- 浮动的元素要想居中,必须定位。利用
margin-left:50%; left: - 1/2width。
1 | <style type="text/css"> |
原理:margin-left:50%;
此时元素的左边线就会到屏幕中线,拉回自己的width一半即可。所以要用相对定位拉动。或者transform:translate(-50%,0);
简单说明绝对定位和浮动的区别和应用。
绝对定位脱离标准文档流,它的参考点是文档的左上角或者右上角。如果有任何父元素有定位属性,此时就依据“子绝父相”规则来设置自己的定位参考元素。在做网页时候非常的灵活方便。制作覆盖效果的时候,会大量使用绝对定位。
浮动脱离标准文档流,通常用于制作并排显示的元素,通常用于大的布局,或者无序列表比如图片的并排。可以使用clear:both;属性让标准流中的其他元素在此之后依次排列。
行内元素和块级元素的区别,行内元素有哪些,块级元素有哪些
行内元素不能设置宽度、高度,但是能并排显示,浏览器视行内元素是“文本流元素”。span、a、em、b、u、i。
块级元素能设置宽度、高度,但是不能并排显示。div、h1、ul、p、li、section、header。
CSS引入的方法有哪些?都有什么区别
1 | 外链式<link href="1.css" type="text/css" rel="stylesheet" /> |
外链式方便多个网页同时使用一个样式表。
内嵌式速度快,但是改版麻烦,可以减少HTTP请求。
导入式不好用,因为页面首先加载,然后导入样式表,页面在1s~2s内会有没有样式表的情况,然后突然有了样式。因为link引用CSS时,在页面加载时同步加载;而@import
在页面加载完后才开始对对应CSS进行加载。
行内式通常用于开发时候的临时测试,语义不清晰,不能使用。
在书写高效CSS时,需要考虑哪些问题?
基本原则是:去掉不必要的样式、合并相同的样式、尽可能缩小样式的大小。多用公共类,让css变得不臃肿。
比如:gulp中有一个插件叫做gulp-csso
,可以智能合并相同的样式,比如div p{font-size:10px;color:green;} p{color:green;}
它会智能变为:div p{font-size:10px;} p{color:green;}。
简述一下什么是内容与表现分离
HTML就是负责语义,其他什么都不需要管。HTML不要用b、u、i
来设置加粗、下划线、倾斜,而是写font-weight:bold; text-decoration:underline; font-style:italic;
用CSS来表示。再比如,logo可以用h1
,用背景替换文字来呈递图片。text-indent:-999em;
CSS层叠是什么
CSS全名叫做层叠式样式表,cascading style sheet,cascading
就是层叠的意思。层叠具体有两层含义:
- 比如一个标签它可以通过多种手段给他添加属性。
1
2
3
4
5
6#logo{}
.spec{}
h1{}
body{}
<h1 id="logo" class="spec"></h1>
此时这个标签就被多个选择器添加属性,如果属性有冲突,CSS有精确的权重计算方法来确定“听谁的”。
- 一个选择器可以同时作用在多个标签身上,也有一些属性可以继承下去。使标签是由多个选择器共同影响而来。此时CSS就可以写的很精简。
浏览器是如何根据CSS选择器选择对应元素的
#
表示id,浏览器会寻找拥有id的元素。.
表示类名class属性,空格表示后代,>
表示子元素,+
表示下一个兄弟 , ~
后面所有兄弟。
选择器 | 权重 |
---|---|
ID选择器 | 100 |
类选择器 | 10 |
标签选择器 | 1 |
属性选择器 | 10 |
各种伪类选择器 如:link, :visited, :hover, :active, :target, :root, :not等 | 10 |
各种伪元素 如::first-letter,::first-line,::after,::before,::selection | 1 |
!important
优先级最高,高于上面一切。*
选择器最低,低于一切。
在HTML代码中如何做SEO
h
标签合理使用,strong
标签语义比较强,合理使用。title、<meta name="description" />、<meta name="keywords" />
要合理设置a
标签要写title
,img
要写alt
div
要有合理类名,比如.content、.header、.address
,便于搜索引擎爬虫检索
HTML层次清晰,id不要重复,便于搜索引擎爬虫检索
CSS怎样判断不同分辨率显示不同宽度布局,从而实现自适应宽度
- 使用百分比布局,用百分比来写宽度、marign、padding
- 使用em当做单位,写一段JS让html根元素的字号随着浏览器宽度的变化而等比例变化
- 使用媒体查询,
<link href="1.css" media="screen and (min-width=900px)" />
一个页面(HTML)由哪几部分构成?分别是什么?作用是什么
由head
和body
构成。
head
里面放置一些配置信息,比如配置title、keyword、description、charset
等等信息,不会显示在浏览器中。
body
是内容,会显示在浏览器的屏幕中。
为什么利用多个域名来存储网站资源会更有效
CDN,表示让用户从离自己最近的下载点下载资源。
突破服务器的带宽限制。
节约主域名的连接数,提升并发。
更加安全,比如静态资源服务器上面,不能运行任何代码的。
谈谈对CSS Sprites技术优缺点的理解。
CSS精灵技术,优点就是减少HTTP的请求数量,加快网页渲染速度。便于一整套更换,比如圣诞节了,此时可以改变CSS中的各种按钮、logo变成圣诞风格,一下子全变了。
缺点就是不能随意改变之前已经在精灵上面的图片的位置,做repeat-x、repeat-y
精灵难以实现。做先导小符号的时候,精灵要靠边。
用纯CSS创建一个三角形的原理是什么?
1 | 把上、左、右三条边隐藏掉(颜色设为 transparent) |
html5有哪些新特性
语义化更好的内容标签(header,nav,footer,aside,article,section)
音频、视频API(audio,video)
画布(Canvas) API
地理(Geolocation) API
拖拽释放(Drag and drop) API
本地离线存储
表单控件,calendar、date、time、email、url、search