JPEG,GIF,PNG,最流行的是 jpeg 格式,可以把文件压缩到最小 在 ps 以
jpeg 格式存储时,提供 11 级压缩级别
2. 请简述 css 盒子模型
一个 css 盒子从外到内可以分成四个部分:margin(外边距),border
(边框),padding(内边距),content(内容)。默认情况下,盒子的
width 和 height 属性只是设置 content(内容)的宽和高,
盒子真正的宽应该是:内容宽度+左右填充+左右边距+左右边框
盒子真正的高应该是:内容高度+上下填充+上下边距+上下边框
3. 视频 / 音频标签的使用
视频:
视频标签属性:
src 需要播放的视频地址
width/height 设置播放视频的宽高,和 img 标签的宽高属性一样
autoplay 是否自动播放
controls 是否显示控制条
poster 没有播放之前显示的展位图片
loop 是否循环播放
perload 预加载视频(缓存)与 autoplay 相冲突,设置了 autoplay 属
性,perload 属性会失效。
muted 静音模式
音频: 音频属性和视频属性差不多,不过宽高和 poster 属性不能用
4.HTML5 新增的内容有哪些
新增语义化标签
新增表单类型
表单元素
表单属性
表单事件
多媒体标签
5.Html5 新增的语义化标签有哪些
语义化标签优点:1.提升可访问性 2.seo 3.结构清晰,利于维护
Header 页面头部 main 页面主要内容 footer 页面底部
Nav 导航栏 aside 侧边栏 article 加载页面一块独立内容
Section 相 当 于 div
figure 加 载 独 立 内 容 ( 上 图 下 字 )
figcaption figure 的标题
Hgroup 标题组合标签 mark 高亮显示 dialog 加载对话框标签(必须
配合 open 属性)
Embed 加载插件的标签 video 加载视频 audio 加载音频(支持格式
ogg,mp3,wav)
6.Css3 新增的特性
边框:
border-radios 添加圆角边框
border-shadow:给框添加阴影 (水平位移,垂直位移,模糊半径,阴
影尺寸,阴影颜色,insetr(内/外部阴影))
border-image:设置边框图像
border-image-source 边框图片的路径
border-image-slice 图片边框向内偏移
border-image-width 图片边框的宽度
border-image-outset 边框图像区域超出边框的量
border-image-repeat 图像边框是否平铺(
repeat 平铺 round 铺满
stretch 拉伸)
背景:
Background-size 背景图片尺寸
Background-origin规定background-position属性相对于什么位置定
位
Background-clip 规定背景的绘制区域(padding-box,border-box,
content-box)
渐变:
Linear-gradient()线性渐变
Radial-gradient()径向渐变
文本效果:
Word-break:定义如何换行
Word-wrap:允许长的内容可以自动换行
Text-overflow:指定当文本溢出包含它的元素,应该干啥
Text-shadow:文字阴影(水平位移,垂直位移,模糊半径,阴影颜色)
转换:
Transform 应用于 2D3D 转换,可以将元素旋转,缩放,移动,倾斜
Transform-origin 可以更改元素转换的位置,(改变 xyz 轴)
Transform-style 指定嵌套元素怎么样在三位空间中呈现
2D 转换方法:
rotate 旋转 translate(
x,y)指定元素在二维空间的位移 scale(
n)
定义缩放转换
3D 转换方法:
Perspective(
n)为 3D 转换 translate rotate scale 过渡:
Transition-proprety 过渡属性名
Transition-duration 完成过渡效果需要花费的时间
Transition-timing-function 指定切换效果的速度
Transition-delay 指定什么时候开始切换效果
动画:animation
Animation-name 为@keyframes 动画名称
animation-duration 动画需要花费的时间
animation-timing-function 动画如何完成一个周期
animation-delay 动画启动前的延迟间隔
animation-iteration-count 动画播放次数
animation-direction 是否轮流反向播放动画
7. 清除浮动的方式有哪些?请说出各自的优点
高度塌陷:当所有的子元素浮动的时候,且父元素没有设置高度,这时
候父元素就会产生高度塌陷。
清除浮动方式 1:给父元素单独定义高度
优点:快速简单,代码少 缺点:无法进行响应式布局
清除浮动方式 2:父级定义 overflow:hidden;zoom:1(针对 ie6 的
兼容)
优点:简单快速、代码少,兼容性较高 缺点:超出部分被隐藏,布局时
要注意
清除浮动方式 3:在浮动元素后面加一个空标签,clear:both;height:
0;overflow:hidden
优点:简单快速、代码少,兼容性较高。
缺点:增加空标签,不利于页面优化
清除浮动方式 4:父级定义 overflow:auto
第 5 页 第 6 页
优点:简单,代码少,兼容性好
缺点:内部宽高超过父级 div 时,会出现滚动条
清除浮动方式 5:万能清除法:
给塌陷的元素添加伪对象
.father:after{
Content:“随便写”;
Clear:both;
display:block;
Height:0;
Overflow:hidden;
Visibility:hidden
}
优点:写法固定,兼容性高
缺点:代码多
8. 定位的属性值有何区别
Position 有四个属性值:relative absolute fixed static
Relative 相对定位 不脱离文档流,相对于自身定位
Absolute 绝对定位,脱离文档流 相对于父级定位
Fixed 固定定位,脱离文档流,相对于浏览器窗口定位
Static 默认值,元素出现在正常的流中
9. 子元素如何在父元素中居中
水平居中: 第 7 页
1.子父元素宽度固定,子元素设置 margin:auto,并且子元素不能设置
浮动,否则居中失效
2.子父元素宽度固定,父元素设置 text-align:center,子元素设置
display:inline-block,并且子元素不能设置浮动,否则居中失效
水平垂直居中:
子元素相对于父元素绝对定位,子元素 top,left 设置 50%,子元素
margin-top 和 margin-left 减去各自宽高的一半
子元素相对于父元素绝对定位,子元素上下左右全为 0,然后设置子元素
margin:auto
父元素设置 display:table-cell vertical-align:middle,子元素设置
margin:auto
子元素相对定位,子元素 top,left 值为 50%,transform:translate
(
-50%,-50%)
子元素相对父元素绝对定位,子元素 top,left 值为 50%,transform:
translate(
-50%,-50%)
父元素设置弹性盒子,
display:flex; justfy-content:center ;align-item:center;
justfy-content:center
10.Border-box 与 content-box 的区别
Content-box 标准盒模型 width 不包括 padding 和 border
Border-box 怪异盒模型 width 包括 padding 和 border 第 8 页
11. 元素垂直居中
1.设置子元素和父元素的行高一样
2.子元素设置为行内块,再加 vertical-align:middle
3.已知父元素高度,子元素相对定位,通过 transform:
translateY(
-50%)
4.不知道父元素高度,子绝父相,子元素 top:50%,transform:
translateY(
-50%)
5.创建一个隐藏节点,让隐藏节点的 height 为剩余高度的一半
6.给父元素 display:
table,子元素 display:
table-cell,vertical-align:
middle
7.给父元素添加伪元素
8.弹性盒,父元素 display:flex,子元素 align-self:center
链接:https://www.waimaiguai.com/technology/article/5866382
来源:外卖怪
CSS3 弹性框(Flexible Box或Flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当排布行为的布局方式。对很多应用程序来说,由于不使用浮动,且弹性容器的外边距也不会与其内容的外边距合并,弹性框模型比起方框模型要好一些。许多设计师会发现弹性框模型易于使用。弹性框中的子元素可以在各个方向上进行布局,并且能以弹性尺寸来适应显示空间。由于元素的显示顺序与它们在源代码中的顺序无关,定位子元素变得更容易,并且能够用更简单清晰的代码来完成复杂的布局。这种无关性是特意限制于视觉呈现上的,语音顺序以及基于源代码顺序的导航均不受影响。注意:虽然CSS 弹性框布局规范还处于最终征求意见稿 (Last Call Working Draft)阶段(参见最新编辑草案),并非所有浏览器都实现了弹性框的所有功能。但,这么说吧,现在全线产品对弹性框都有良好支持。最新的兼容性状况可以查看每个具体属性的兼容性表格获取。弹性框概念弹性布局在定义方面是指调整其内项目宽高从而在任何显示设备上实现对可用显示空间最佳填充的能力。弹性容器扩展其内项目来填充可用空间,或将其收缩来避免溢出。弹性框布局算法是方向无关的,与此相对的,块级布局侧重于垂直方向、行内布局侧重于水平方向。虽然块级布局用于页面行之有效,但其仍缺乏足够的定义来支持那些必须随用户代理(user agent)不同或设备方向从水平转为垂直等各种变化而变换方向、调整大小、拉伸、收缩的应用程序组件。 弹性框布局主要适用于应用程序的组件及小规模的布局,而(新兴的)网格布局则针对大规模的布局。这二者都是 CSS 工作组为在不同用户代理、不同书写模式和其他灵活性要求下的网页应用程序有更好的互操作性而做出的更广泛的努力的一部分。弹性框相关词汇表关于弹性框的讨论已经从诸如水平/行内轴和垂直/块级轴这些术语中解放出来,与此同时,需要有一套新的术语来正确描述此模型。在学习下面的词汇项目时请对照下图。图中是一个flex-direction属性为row的弹性容器,意味着其内的弹性项目将根据既定书写模式沿主轴水平排列,其方向为元素的文本流方向,在这个例子里,为从左到右。弹性容器(Flex container)包含着弹性项目的父元素。通过设置display属性的值为flex或inline-flex来定义弹性容器。弹性项目(Flex item)弹性容器的每个子元素都成为弹性项目。弹性容器直接包含的文本将包覆成匿名弹性项目。轴(Axis)每个弹性框布局包含两个轴。弹性项目沿其依次排列的那根轴称为主轴(main axis)。垂直于主轴的那根轴称为侧轴(cross axis)。
flex-direction属性确立主轴。
justify-content属性定义了在当前行上弹性项目沿主轴如何排布。
align-items属性定义了在当前行上弹性项目沿侧轴默认如何排布。
align-self属性定义了单个弹性项目在侧轴上应当如何对齐,这个定义覆盖由align-items所确立的默认值。
方位(Direction)弹性容器的各个边(主轴起点(main start)/主轴终点(main end)和侧轴起点(cross start)/侧轴终点(cross end))描述了弹性条目流的起点与终点。它们具体取决于弹性容器的主轴与侧轴以及由writing-mode确立的方向(从左到右、从右到左,等等)。
order属性将元素与序号组关联起来,并决定哪些元素先出现。
flex-flow属性是flex-direction和flex-wrap属性的简写,决定弹性项目如何排布。
行(Line)根据flex-wrap属性,弹性项目可以排布在单个行或者多个行中。此属性控制侧轴的方向和新行排列的方向。尺寸(Dimension)根据弹性容器的主轴与侧轴,弹性项目的宽和高相应称为主轴尺寸(main size)与侧轴尺寸(cross size)。
min-height与min-width属性初始值为 0。
flex属性是flex-grow、flex-shrink和flex-basis属性的简写,确立弹性项目的伸缩性。
指派弹性框为要使用此样式的元素指派 CSS,需按以下方式设置display属性:
display:flex或者
display:inline-flex这样做将元素定义为弹性容器,其子元素则成为弹性项目。值flex使弹性容器成为块级元素。值inline-flex使弹性容器成为单个不可分的行内级元素。
注意:厂商前缀标记应当附加给 display 属性值,而不是加给 display 属性本身。例如:display : -webkit-flex。弹性项目须知弹性容器直接包含的文本将自动包覆成匿名弹性项目。不过,只包含空白的弹性项目不会被渲染,就如同对其指派display: none。对于弹性容器的绝对定位子元素来说,其静态位置参照弹性容器的内容框的主起始角确定,而后依此完成此元素的定位。相邻的弹性元素其外边距不会互相合并。使用auto外边距可以吸收掉水平或垂直方向上的额外空间,这可以用于对齐或分隔相邻的弹性项目。更多细节请参考 W3C 弹性框布局模型规范中的Aligning with 'auto' margins。为了确保弹性项目有合理的默认最小尺寸,使用min-width:auto与min-height:auto。对于弹性项目,属性值auto使项目的最小宽/高在计算中不会小于其内容的实际宽/高,这样可以保证项目渲染得足够大以容纳其内容。更多细节请参考min-width与min-height。不像 CSS 中的其他对齐方法,弹性框的对齐属性将进行“真正的”居中对齐。这意味着即使弹性条目溢出了弹性容器,它依然保持居中。不过这在某些时候可能会有问题。如果溢出超过了页面的上边缘或左边缘(在从左到右的语言中,比如英语;在诸如阿拉伯语这样从右到左的语言中这个问题出现在右边缘),则虽然那些地方确实有内容,却无法滚动到那些位置。在未来的发布版本里,对齐属性将会有所扩展,使其包含有“安全”选项。目前,如果操心这点,可以改用外边距来达成居中效果,因为外边距会用比较“安全”的方式来响应变化,出现溢出时将停止居中。对需要居中的弹性项目应用自动外边距来替代align-属性的使用。对弹性容器中第一个和最后一个弹性项目的外侧边缘应用自动外边距来替代justify-属性。自动外边距会自动伸缩来占满剩余空间,当有剩余空间存在时弹性项目将会居中,如果没有则切换至常规对齐方式。不过,如果尝试在多行的弹性框中用基于外边距的居中方法来替代justify-content,很不幸,必须对每一行的第一个和最后一个弹性项目应用外边距。除非能够事先预测每一行都结束于哪个元素,否则无法放心地在主轴方向上用基于外边距的居中方法来替代justify-content属性。重新提一下,元素的显示顺序与它们在源代码中的顺序无关,这种无关性只影响视觉呈现,语音顺序以及基于源代码顺序的导航均不受影响。order属性并不影响语音和导航的次序。因此开发者们必须小心,合理地安排元素在源代码中的顺序,以免破坏文档的可访问性。弹性框相关属性不影响弹性框的属性由于弹性框使用了不同的布局算法,某些属性用在弹性容器上没有意义:
多栏布局模块的column-*属性对弹性项目无效。
float与clear对弹性项目无效。使用float将使元素的display属性计为block。
vertical-align对弹性项目的对齐无效。
示例基本的弹性布局示例这个基本的示例展示了如何对元素应用弹性布局,以及在弹性布局状态下相邻元素的行为方式。
htmllang='en'>head>style>.flex{/* 基本样式 */width:350pxheight:200pxborder:1px solid#555font:14px Arial/* 建立弹性框 */display:-webkit-flex-webkit-flex-direction:rowdisplay:flexflex-direction:row}.flex>div{-webkit-flex:11autoflex:11autowidth:30px/* 让过渡表现良好。(从/到'width:auto'的过渡 至少在 Gecko 和 Webkit 上是有 bug 的。 更多信息参见 http://bugzil.la/731886 ) */-webkit-transition:width0.7s ease-outtransition:width0.7s ease-out}/* colors */.flex>div:nth-child(1){background:#009246}.flex>div:nth-child(2){background:#F1F2F1}.flex>div:nth-child(3){background:#CE2B37}.flex>div:hover{width:200px}style>head>body>p>Flexbox nuovop>divclass='flex'>div>unodiv>div>duediv>div>trediv>div>body>html>