H5页面中字体大小动态配置

JavaScript011

H5页面中字体大小动态配置,第1张

html 元素是文档的根元素,对html设置了字体大小,其子元素会继承html字体的大小。

不同的浏览器默认有的默认html的字体是16px,有的是14px。

同时浏览器字体的大小还会受到你自己在手机里配置的系统字体大小的影响。

这么多因素,如果只靠css里配置html字体大小,子元素基于html的rem是不能保证在不同的手机端适配的。

所以可以通过js动态来计算html应该配置多大的字体。

<script>

    function htmlFontSize() {

        var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0)

        var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0)

        var width = w >h ? h : w

        width = width >720 ? 720 : width

        var fz = ~~(width * 100000 / 36) / 10000/2

        document.getElementsByTagName("html")[0].style.cssText = 'font-size: ' + fz + "px"

        var realfz = ~~(+window.getComputedStyle(document.getElementsByTagName("html")[0]).fontSize.replace('px', '') * 10000) / 10000

        if (fz !== realfz) {

            document.getElementsByTagName("html")[0].style.cssText = 'font-size: ' + fz * (fz / realfz) + "px"

        }

    }

    htmlFontSize()

    </script>

在js计算出html的字体大小以后,就可以在这个基础上配置各子元素的字体大小了。

html的字体大小设置为font-size100px原因:

html{font-size:100px}

h1{font-size: 0.16rem//100*0.16=16px }

.cc{font-size:0.14rem//14px}

又为什么要把html的font-size设置成50px:

因为设备像素比有2的,还有3的,我们按照设备像素比是2的开发,如果html{font-size:50px}那么设计稿ui中得头部header的高度是86px:height:0.86rem.(即:50px*0.86rem=43px,那么到了设备像素比是2的设备上,header的高度就是86px)这样就省去了除以2的计算。

通过for循环判断每个选项,一旦满足条件则设置其selected属性为true即可,关键代码:

下面给出实例演示:

1、HTML结构

2、javascript代码

3、设置效果:如图设置选中项为2,点击按钮后“赵云”即被选中。

扩展资料:

selected 定义和用法

selected 属性规定在页面加载时预先选定该选项。

被预选的选项会显示在下拉列表最前面的位置。

也可以在页面加载后通过 JavaScript 设置 selected 属性。

参考资料:百度百科JS

可以使用javascript和jQuery两种实现方式

1:使用javascript实现

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<title>无标题文档</title>

</head>

<body>

<select name="jumpMenu" id="jumpMenu" onChange="jumpMenu('parent',this,0)">

<option id="1" value="跳转URL">111</option>// 111 是显示给用户的信息

<option id="2" value="跳转URL">222</option>

<option id="3" value="跳转URL">333</option>

<option id="4" value="跳转URL">444</option>

<option id="5" value="跳转URL">555</option>

</select>

<script type="text/javascript">

function display(optionID){

var all_options = document.getElementById("jumpMenu").options

for (i=0i<all_options.lengthi++){

if (all_options[i].id == optionID) // 根据option标签的ID来进行判断 测试的代码这里是两个等号

{

all_options[i].selected = true

}

}

}

display("4")

</script>

</body>

</html>

2:使用jQuery实现

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<title>无标题文档</title>

</head>

<body>

<select name="jumpMenu" id="jumpMenu" >

<option value="1">111</option>// 111 是显示给用户的信息

<option value="2">222</option>

<option value="3">333</option>

<option value="4">444</option>

<option value="5">555</option>

</select>

<script type="text/javascript" src="js/jquery1.8.3.min.js"></script>

<script type="text/javascript">

$(function(){

// $("#jumpMenu").val(要选中的option的value值即可)

$("#jumpMenu").val(4)

})

</script>

</body>

</html>