WordPress网站做响应式布局的几个方案
响应式网站设计(Responsive Web design)的理念是:页面的设计与开发应当根据用户行为以及设备…
响应式网站设计(Responsive Web design)的理念是:页面的设计与开发应当根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相应的响应和调整。具体的实践方式由多方面组成,包括弹性网格和布局、图片、CSS media query 的使用等。无论用户正在使用笔记本还是 iPad,我们的页面都应该能够自动切换分辨率、图片尺寸及相关脚本功能等,以适应不同设备;换句话说,页面应该有能力去自动响应用户的设备环境。响应式网页设计就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。这样,我们就可以不必为不断到来的新设备做专门的版本设计和开发了。
移动互联网已是现在网名上网的主流,越来越多的人通过手机上网来查看信息,所以,如果用 WordPress 做网站,移动端的网页效果就不得不考虑进去。很多大站都是 PC 和移动分开做的,如:新浪、腾讯等这样的门户站。这种分离方案,是可取的,不过,对于 wordpress 做成的小站来说,就没有必要这么复杂地做 2 套模板,我们完全可以通过响应式布局,让网页在多个终端上都能正常显示。
在过去的几年里,许多响应模板,CSS 框架和 WordPress 主题如雨后春笋般涌现。下面就提供几套 wordpress 网站响应式布局的方案。
方案一:多个 CSS 文件
就是为不同的终端创建不同的 CSS 文件。主要是在网页的 head 头加入判断屏幕宽度的代码,如下:
-
<link rel="stylesheet" type="text/css" href="style1.css" media="screen and (min-width: 320px)">
-
<link rel="stylesheet" type="text/css" href="style2.css" media="screen and (min-width: 320px) and (max-width: 400px)">
上面代码第一句意思是:当屏幕宽度是 320px 以内时,就调用 style1.css 这个样式。第二句的意思是:当屏幕宽度是 320~400 之间时,就调用 style2.css 这个样式文件。
方案二:只用 1 个 CSS 文件
所有终端只用一个 CSS 文件来实例响应式布局。对不同宽度的判断放到这个 CSS 文件中,如下:
-
@media screen and (max-width: 320px) {
-
HTML { font-size:14px;}
-
}
-
@media screen and (min-width: 320px) and (max-width: 440px) {
-
html { font-size: 16px;}
-
}
上面的代码意思是:当屏幕是 320px 宽度时,html 的字体大小是 14px;当屏幕宽度是 320~440 之间时,字体大小是 16px。
方案三:JS+rem 实现响应式
要求 CSS 文件中的大小单位为 rem,然后通过 JS 代码来根据不同的屏幕宽度更改网页块等元素的大小。JS 代码如下:
-
(function(win,doc){
-
var oContainer=doc.getElementById('container'); /* 获取页面主体最大元素 */
-
var oHtml=doc.getElementsByTagName('html')[0]; /* 获取 html 元素 */
-
fnResetHtmlFontSize();
-
function fnResetHtmlFontSize(){ /* 缩放函数 */
-
var iContainerWidth=oContainer.offsetWidth; /* 获取主体在当前手机浏览器的宽度 */
-
oHtml.style.fontSize=iContainerWidth/10+'px'; /* 设置根元素字体大小 = 主体宽度 / 10 */
-
}
-
win.addEventListener('resize',fnResetHtmlFontSize,false); /* 当屏幕宽度发生变化时,执行缩放函数 */
-
})(window,document);
这种方案的优点是:不需要在头部和 CSS 文件中做屏幕判断了,CSS 文件相对来说,代码会少很多,不需要根据不同的宽度来设置 DIV 等元素的不同的大小了。缺点是:如果浏览器禁用了 JS,响应式就会失去效果。
介绍了这 3 种 wordpress 网站响应式布局方案,可以根据自己网站的情况选择适合自己的。不管哪一种都可以让你的网站在不同的终端上都可以达到理想的显示效果。个人比较推崇第 3 种方案,可以省去好多代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!