整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

table元素在自适应布局中的自适应性

table元素在自适应布局中的自适应性

HTML5自适应布局技术独步天下的今天,table是一个不鼓励使用的HTML标记,但现实工作中,我们避免不了的偶尔会用到它。那么,怎样让一个传统的表格也表现出自适应性呢?

网上有很多种解决方案,最常见的是配合JavaScript。css-tricks里给出了一个用纯CSS实现的,但它需要将一些业务数据写在CSS里。而本文在这里将提到的一种方法也是用纯CSS实现表格的自适应布局,而且CSS只负责表现,不牵涉业务逻辑和数据。

例如:

借助伪元素和自定义属性

我们将借助伪元素 :before 和 :after 的力量。通常, 它们用显示图标类的内容,比如一个箭头,提示,或文字图案(icon)。它的另外一个神奇的功能是元素属性值显示到HTML内容里,content: attr(data-label),放在before/after伪元素类里。沿着这个思路,我们就能够让table在PC端表现成网格效果,而在小屏的手机端表现成流式布局。

我们暂以600px为小屏幕大屏幕的分界点,下面的CSS使用媒体查询语句,在小于600px宽的屏幕上,用CSS将td上的属性值取出来,放到内容区显示。

@media screen and (max-width: 600px) {table td:before {content: attr(data-label);float: left;text-transform: uppercase;font-weight: bold;}}

在大屏幕上的显示效果是这样:

而到了手机设备上,变成了这样:

说明:本篇《自适应布局中table元素的自适应性》的内容采自互联网,如有侵权,请联系我们删除!

、 利用meta标签

Meta标签主要用来描述一个HTML网页文档的属性,如作者、日期时间、网页描述、关键词、页面刷新等,它的Description和Keywords属性,可加入网站的关键字,让网页利于搜索引擎。

<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>

解释:Viewport指用户网页的可视区域,content中的“width”指的是虚拟窗口宽度,上面代码意为虚拟窗口/页面宽度初始比例为1,最小比例为1,最大比例为1,用户不可扩展,页面不可缩放。

以上标签只支持一种尺寸,正确的做法是用js动态生成下面标签,前提是要先获取屏幕尺寸。

<script type="text/javascript">

var phoneWidth=parseInt(window.screen.width);

var phoneScale=phoneWidth/640;

var ua=navigator.userAgent;

if (/Android (d+.d+)/.test(ua)){var version=parseFloat(RegExp.);

if(version>2.3){ document.write(‘<meta name="viewport" content="width=640, minimum-scale=‘+phoneScale+‘, maximum-scale=‘+phoneScale+‘, target-densitydpi=device-dpi">‘); }

else{document.write(‘<meta name="viewport" content="width=640, target-densitydpi=device-dpi">‘); }

else { document.write(‘<meta name="viewport" content="width=640, user-scalable=no, target-densitydpi=device-dpi">‘); }

</script>

2、百分比法

CSS中的百分比中指的是相对于父元素的宽度。子元素的padding-left:50%,父元素的宽度是百,子元素的margin-top:20%,那么父元素的高是百。body默认宽度是屏幕宽度(PC中指的是浏览器宽度)子孙元素按百分比定位(或指定尺寸)就可以了。但这只适合布局简单的页面,复杂的页面实现很困难。

3、 使用CSS3单位rem

在页面载入开始时首先判断window的宽度(是window的宽度($(window).width()),不是屏幕分辩率的宽度(screen.width),两者差别请自行查阅),假设宽度为W,一个div在宽度为640px的设计稿的下的宽度为dW1,如果html的font-size为100px,那么这个div的宽度用rem表示是多少呢?

计算:div宽度dW2=dW1/100,px与rem之间换算除以100就可以,这是假定屏幕宽度为640的,而不同宽度的屏幕怎么处理,为了能保证换算容易那就要为html设置一个合适的font-size,计算:100 / 640=fontSize / W, fontSize=W / 640 * 100=W / 6.4。大多数浏览器font-size的最小值为12px,所以只能用100作为缩放比例。

所以会在头部加上这个JS代码:

<script type="text/javascript">

var html=document.querySelector(‘html‘);

var rem=html.offsetWidth / 6.4;

html.style.fontSize=rem + "px";

</script>

4、 媒体查询

媒体查询正是为解决网页适应手机屏幕。媒体查询的功能就是为不同的“媒体”设置不同的css样式,页面尺寸,设备屏幕尺寸等,比如我们要为宽度小于480px的页面中的class="icon"的元素设置样式,可以这样写,@media screen and (max-width=480px) {.icon{ some styles }};具体可自行研究。

以上几种方法,仅供大家参考。如有不妥,欢迎指正。制作自适应页面需要比较好的编程基础和技术觉悟,一般的小白,不建议大家为了做自适应网页专门学习HTML5、CSS3和JS,毕竟这并非一朝一夕就能学会的。如果技术小白想做自适应网页,这里给大家提供一种思路,用建站宝盒。完全不需要编程基础,全程拖拽,一样能做出让人惊艳的自适应网站。现在还有免费建站活动,无论外行内行,大家可以注册体验一下。

零基础免费做HTML5自适应网站:http://www.iisp.com/design/free-site.php?s=yuqiuping


eb前端开发面试题,前端面体及答案2020

移动布局自适应屏幕的几种方式?

(1) 响应式布局 (2) 100%布局(弹性布局) (3) 等比缩放布局(rem)

如何防止XSS攻击?

(1) 将前端输出数据都进行转义 (2) 将输出的字符串中的\反斜杠进行转义 (3) 从url中获取的信息,防治方法是由后端获取,在前端转义后再行输出 (4) 使用cookie的HttpOnly属性,保护好cookie

混合开发的注意点

增强WebView : 原生WebView基本是PC平台浏览器内核的移植,但对于移动场景并不完全适合,各种硬件API得不到HTML5原生支持。因此对于WebView的种种Hack、增强应运而生,甚至出现了基于增强WebView提供第三方服务的。

路由: 应用内跳转由于加入了 WebView而变得复杂起来,同时由于组件化、模块化带来的问 题,路由也成为人们讨论的重点。

缓存: 移动网络条件差,为了用户体验,必须要做资源缓存和预加载。

通信: 即HTML5和Native之间的通信。利用系统提供的桥接API可以实现,不过在应用上还 有着一些坑点和安全问题。

简述Node.js的使用场景?

IIO 密集而非计算密集的情景;高并发微数据(比如账号系统)的情景。特别是高并发,Node.js 的性能随并发数量的提高而衰减的现象相比其他 server 都有很明显的优势。

Bad Use Cases 1.CPU heavy apps (高CPU消耗的app) 2.Simple CRUD / HTML apps (简单的CRUD / HTML apps) 3.NoSQL + Node.js + Buzzword Bullshit (NoSQL + Node.js + 各种时髦词汇)

Good Use Cases 1.JSON API 2.Single page apps (单页面app) 3.Shelling out to unix tools (对unix工具的脚本化调用) 4.Streaming data (流数据) 5.Soft Realtime Applications (软件实时程序)

以上就是酷仔今天整理提供的Web前端开发面试题,希望为Web前端同学提供了有用的面试素材,以后酷仔每日均会提供Python及Web相关的习题。

特殊说明:以上资料由开课吧提供!