静态响应式布局
作者:村头的小路_157 | 来源:互联网 | 2023-08-25 23:45
大家都知道响应式布局的要素有几点:1.用百分比来定位,好处是不需要用js就可以根据浏览器的缩放拉伸和缩小元素。2.用em来作为度量单位。由于是相对单位,比像素更灵活一点。虽然在我目
大家都知道响应式布局的要素有几点:
1.用百分比来定位,好处是不需要用js就可以根据浏览器的缩放拉伸和缩小元素。
2.用em来作为度量单位。由于是相对单位,比像素更灵活一点。虽然在我目前还没发现经过viewport转换后em和px用起来有什么区别 t.t
3.在HTML中为media query准备好
/*pad*/
@media screen and (min-width: 769px){}
/*horizontal iphone5 568x320*/
@media screen and (max-width: 768px) and (min-width: 481px){}
/*horizontal iphone4 480x320,large android*/
@media screen and (max-width: 480px) and (min-width: 380px){}
/*=====vertical iphone5 320x568,vertical iphone4 320x480 ,Android=====*/
@media screen and (max-width: 379px) and (min-width: 320px){}
/*-----small Android-----*/
@media screen and (max-width: 319px) and (min-width: 240px){}
/*further small*/
@media screen and (max-width: 239px){}
5.对retina屏幕需要使用2倍尺寸的图片来增加像素密度,用CSS3判断设备为retina
/* ------------- Retina ------------- */
@media only screen and (-o-min-device-pixel-ratio: 2/1), /* Opera */
only screen and (min--moz-device-pixel-ratio: 2), /* Firefox 16 之前 */
only screen and (-webkit-min-device-pixel-ratio: 2), /* Webkit */
only screen and (min-resolution: 240dpi), /* 标准 */
only screen and (min-resolution: 2dppx) /* 标准 */
{
.mod .hd h3{
background-image:url();
background-size: 50% 50%;
}
}
利用background-size属性。使用100% 100%来让图片撑满,50%来缩小一倍。
有2个可选值,第1个值用于指定背景图的width,第2个值用于指定背景图的height,如果只指定1个值得,则第2个值默认为auto。
background-size:cover; 等比扩展图片来填满元素
background-size:contain; 等比缩小图片来适应元素的尺寸
另外提到一个比较神奇的属性: >background-position:center;
>它有使得背景图片自然的根据元素宽度渐渐显示并保持居中的能力,效果媲美js。
真正的响应式网站必定有pc乃至pad和smartphone两套设计。这样所以缩放的范围并不大,比如980到1920之间为一套。那么真正用到js缩放元素的地方也不多,多数靠css可以完成。
布局的时候往往采用一个100%宽的inline-block属性wrapper,撑满背景。然后固定宽度,比如980的block属性inner来margin:0
auto。
其他需要等比例缩放的地方可借助js完成,见我的另一篇博客 自适应全屏与居中算法
参考文章:
>响应式图片
图片液态化
CSS为Retina屏幕替换图片