html5移动端pc端pc端,移动端和pc端公用样式及rem布局

本文详细介绍了前端和移动端布局中rem单位的使用,包括base.css公共样式的设定,以及两种不同的js方法来动态调整html字体大小以实现响应式布局。此外,还提供了移动端点击a链接的蓝色背景问题解决方案和布局使用方法。
摘要由CSDN通过智能技术生成

一:移动端准备工作

1.

二:pc端准备工作

1.

1.

2.

1.

三:base.css公共样式 pc端

body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video { margin:0;padding:0;border: 0;}

ol,li,ul,dl,dt,dd{list-style:none;}

table{border-collapse:collapse;border-spacing:0}

h1,h2,h3,h4,h5,h6,i,strong {font-weight: normal;}

img {vertical-align: middle;border: none;width: 100%;}

i {font: inherit;}

a {color: #fff;text-decoration: none;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); background-color:transparent;}

a:hover {text-decoration: underline; outline: none;}

select::-ms-expand { display: none; }

a:active,a:hover{outline:0}

.clearfix::before,

.clearfix::after{

content: '';

display: block;

height: 0;

line-height: 0;

visibility: hidden;

clear: both;

}

.fl{ float:left;}

.fr{float:right;}

input,select,option{vertical-align:middle;border-radius:0px;-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);outline: none;}

input[type="text"],input[type="button"],input[type="submit"],input[type="reset"]{-webkit-appearance: none;appearance: none;border-radius: 0;outline: none;}

.overflow {overflow:hidden; }

四:base.css公共样式 移动端

body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video { margin:0;padding:0}

ol,li,ul,dl,dt,dd{list-style:none;}

.fl {float: left;}

.fr {float: right;}

table{border-collapse:collapse;border-spacing:0}

html {

-webkit-text-size-adjust: 100%;

-ms-text-size-adjust: 100%;

/* 解决IOS默认滑动很卡的情况 */

-webkit-overflow-scrolling : touch;

}

/* 禁止缩放表单 */

input[type="submit"], input[type="reset"], input[type="button"], input {

resize: none;

border: none;

}

/* 取消链接高亮 */

body, div, ul, li, ol, h1, h2, h3, h4, h5, h6, input, textarea, select, p, dl, dt, dd, a, img, button, form, table, th, tr, td, tbody, article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {

-webkit-tap-highlight-color: rgba(0, 0, 0, 0);

}

/* 设置HTML5元素为块 */

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {

display: block;

}

/* 图片自适应 */

img {

width: 100%;

height: auto;

width: auto\9; /* ie8 */

-ms-interpolation-mode: bicubic;/*为了照顾ie图片缩放失真*/

}

em, i {

font-style: normal;

}

textarea {

resize:none; /*禁用了文本的拖拉,尤其在谷歌下*/

}

p {

word-wrap:break-word; /* 不够的单词自动换行 而不会被截掉 */

}

.clearfix:after {

content: "";

display: block;

visibility: hidden;

height: 0;

clear: both;

}

.clearfix {

zoom: 1;

}

a {

text-decoration: none;

color: #fff;

font-family: 'Microsoft YaHei', Tahoma, Arial, sans-serif;

}

a:hover {

text-decoration: none; outline: none;

}

h1, h2, h3, h4, h5, h6 {

font-size: 100%;

font-family: 'Microsoft YaHei';

}

img {

border: none;

}

input{

font-family: 'Microsoft YaHei';

}

/*单行溢出*/

.one-txt-cut{

overflow: hidden;

white-space: nowrap;

text-overflow: ellipsis;

}

/*多行溢出 手机端使用*/

.txt-cut{

overflow : hidden;

text-overflow: ellipsis;

display: -webkit-box;

/* -webkit-line-clamp: 2; */

-webkit-box-orient: vertical;

}

/* 移动端点击a链接出现蓝色背景问题解决 */

a:link,a:active,a:visited,a:hover {

background: none;

-webkit-tap-highlight-color: rgba(0,0,0,0);

-webkit-tap-highlight-color: transparent;

}

.overflow {overflow:hidden; }

.w50{

width: 50%;

}

.w25{

width: 25%;

}

.w20{

width: 20%;

}

.w33{

width: 33.333333%;

}

五:移动端 布局使用方法rem

第一种:js控制html字体大小, js代码放在head里面

html设置初始font-size:640px的字体大小

var html = document.getElementsByTagName('html')[0];

if(html){

var w = window.innerWidth;

var fontSize = (w > 640 ? 640 : w) / 640 * 30; //这里最少30,

html.style.fontSize = fontSize + 'px';

}

window.onload = function(){

window.onresize = function(){

var w = window.innerWidth;

console.log(w);

var fontSize = (w>640?640:w)/640 * 30; // 这里最少30,

html.style.fontSize = fontSize + 'px';

}

}

第二种:js控制html字体大小常用 ,js代码放在head里面

html设置初始font-size:320px的字体大小

(function(doc, win) {

var docEl = doc.documentElement;

var resizeEvt = 'orientationchange' in window ? 'orientationchange': 'resize';

var recalc = function() {

var clientWidth = docEl.clientWidth;

if (!clientWidth)

return;

docEl.style.fontSize = (clientWidth>640?640:clientWidth)/ 320 *20 + 'px';

};

// 不同浏览器resize事件处理机制不同

// 使用定时器延迟处理resize回调函数以降低重复响应

var recalcTimer = null;

var delaycalc = function() {

win.clearTimeout(recalcTimer);

recalcTimer = win.setTimeout(recalc, 100);

};

// 移动端不需要考虑事件注册函数的兼容性

if (!doc.addEventListener)

return;

win.addEventListener(resizeEvt, delaycalc, false);

// DOMContentLoaded事件只在DOM文档树加载完毕触发,此处不用延迟处理

doc.addEventListener('DOMContentLoaded', recalc, false);

})(document, window);

六:PC端 布局使用方法rem

(function (doc, win) {

var docEl = doc.documentElement,

resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',

recalc = function () {

var clientWidth = docEl.clientWidth;

if (!clientWidth) return;

if(clientWidth>=640){

docEl.style.fontSize = '100px';

}else{

docEl.style.fontSize = 100 * (clientWidth / 640) + 'px';

}

};

if (!doc.addEventListener) return;

win.addEventListener(resizeEvt, recalc, false);

doc.addEventListener('DOMContentLoaded', recalc, false);

})(document, window);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值