当前位置: 首页 > Web前端 > HTML

自适应网页设计

时间:2023-04-02 19:53:47 HTML

1.允许自动调整网页宽度首先,在网页代码的头部添加一行viewport标签。  viewport是网页的默认宽高,上面这行代码的意思是默认的width网页等于屏幕宽度(width=device-width),原始缩放比例(initial-scale=1)为1.0,即网页初始尺寸占屏幕面积的100%。所有主流浏览器都支持此设置,包括IE9。对于那些旧浏览器(主要是IE6、7、8),你需要使用css3-mediaqueries.js。其次,不要使用绝对宽度,不要使用绝对大小的字体由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度布局,也不能使用带绝对宽度的元素宽度。指定一个百分比宽度width:xx%或width:XXem;使用相对大小的字体em或rem。一般浏览器默认的字体大小是16px。“em”是一个相对大小,它的引用是指相对于该元素的父元素的字体大小。因此,1em始终等于父元素的字体大小。而rem总是相对于根元素的字体大小计算的。1、设置百分比时的计算是相对于父元素的宽度:[max/min-]width、left、right、padding、margin等;相对于父元素的高度:[max/min-]height、top、bottom等;相对于继承的字体大小:font-size等;相对于自身字体大小:line-height等;相对于自身的宽高:border-radius、background-size、transform:translate()、transform-origin、zoom、clip-path等;特殊算法:background-position(方向长度/除背景图像外的方向总长度*100),filter级数函数等;如果position:absolute是自己设置的,那么会相对于离它最近的position外的非static元素,如果没有这个元素则相对于window。如果position:fixed,“父元素”指的是视口。如果margin不加后缀,是相对于宽度的,但是如果加了后缀,比如margin-left,则是相对于高度的;2.设置em时的计算当元素本身没有设置字号时,默认使用父元素的字号。如果设置了元素本身的字体大小,则字体计算公式为:待转换的像素值/父元素的font-size=em值width,height,line-height,margin,padding,border的转换等元素总是根据当前元素的字体大小计算:要转换的像素值/font-size=元素的em值例如:

.outerdiv{font-size:32px;}.innterdiv{width:2em;/*64/32=2*/高度:2em;行高:2em;padding:0.5em;}当innterdiv设置font-size的大小。innerdiv{font-size:0.5em;/*16/32=0.5*/width:2em;/*32/16=2*/height:2em;行高:2em;padding:0.5em;}3.使用流式布局是指每个块的位置是浮动的,不是固定的。当宽度太小放不下两个元素时,后面的元素会自动滚动到前面元素的底部,水平方向不会溢出(overflow),避免了水平滚动条的出现。4、选择加载CSS“自适应网页设计”的核心是CSS3引入的MediaQuery模块。设置断点时,最好基于内容而不是基于每个屏幕大小来设置它们。 @mediascreenand(max-width:1200px){     }@mediascreenand(max-width:780px){     }四、图片的自适应使得图片的宽度100%,但最大宽度不超过400px;img{宽度:100%;max-width:400px;}大多数嵌入网页的视频也可以这样写:img,object{max-width:100%;}适应使用calc实现字体适配。比如你想让屏幕宽度在1553px-1032px范围内变化,那么font-size应该在12px-16px之间相应变化,那么font-size:calc(0.75em+4*(100vw-1032px)/521);vw相对于窗口宽度:窗口宽度为100vw。窗口宽度是指浏览器内部可见区域的大小,即window.innerWidth/window.innerHeight的大小,不包括任务栏标题栏和底部工具栏的浏览器区域大小。0.75em可以用百分比font-size代替:calc(75%+4*(100vw-1032px)/521);也可以换成px单位的font-size:calc(12px+4*(100vw-1032px)/521);但是Safari浏览器不支持这种写法。参考自:响应式网页设计(ResponsiveWebDesign)响应式排版和布局,基于vw等viewport的相对单位