zoukankan      html  css  js  c++  java
  • 这算是CSS的bug吗?

         移动端web开发越来越火,同时移动端适配也是一个很让人头疼的事情,你不能让一个同样大小的元素在不同的设备上都显示一样大小。(iphone6和iphone4下大小肯定是应该不一样的,否则用户体验很差)

         曾几何时为了兼容IE低版本浏览器而头痛,以为到Mobile时代可以跟这些麻烦说拜拜。可没想到到了移动时代,为了处理各终端的适配而乱了手脚。对于混迹各社区的偶,时常发现大家拿手机淘宝的H5页面做讨论—— 手淘的H5页面是如何实现多终端的适配 ?

    那么趁此 Amfe阿里无线前端团队双11技术连载 之际,用一个实战案例来告诉大家,手淘的H5页面是如何实现多终端适配的,希望这篇文章对大家在Mobile的世界中能过得更轻松。

        研究了一下午flexible.js ,没想到被这个被这个border给搞的晕头转向的!

       先看看最常见的移动端1px问题:

       

    <!DOCTYPE html>
    <html>
    
    	<head>
    		<meta charset="UTF-8">
    		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    		<title></title>
    		<style type="text/css">
    			* {
    				padding: 0px;
    				margin: 0px;
    			}
    			
    			.js {
    				 40px;
    				height: 40px;
    				margin: 0 auto;
    			}
    			
    			.main0 {
    				 200px;
    				height: 200px;
    				margin: 0 auto;
    				border: 1px solid red;
    				transform: scale(0.2);   /*200*0.2=40*/
    				margin-top: -80px; /*(200-40)/2=80*/
    				margin-left: -80px;
    			}
    			
    			.my {
    				 100px;
    				height: 100px;
    				border: 1px solid red;
    			}
    		</style>
    	</head>
    
    	<body>
    		<div class="js">
    			<div class="main0"></div>
    		</div>
    		<div class="my"></div>
    	</body>
    
    </html>
    

      看到效果图,吓了我一跳:

       这个100px像素的正方形怎么跑到哪里去了?

       

       修改,给.js加上:border: 1px solid black; ,居然显示正常了!

      

    <!DOCTYPE html>
    <html>
    
    	<head>
    		<meta charset="UTF-8">
    		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    		<title></title>
    		<style type="text/css">
    			* {
    				padding: 0px;
    				margin: 0px;
    			}
    			
    			.js {
    				 40px;
    				height: 40px;
    				margin: 0 auto;
    				border: 1px solid black;  /*就是这一句,不知道为什么??*/
    			}
    			
    			.main0 {
    				 200px;
    				height: 200px;
    				margin: 0 auto;
    				border: 1px solid red;
    				transform: scale(0.2);   /*200*0.2=40*/
    				margin-top: -80px; /*(200-40)/2=80*/
    				margin-left: -80px;
    			}
    			
    			.my {
    				 100px;
    				height: 100px;
    				border: 1px solid red;
    			}
    		</style>
    	</head>
    
    	<body>
    		<div class="js">
    			<div class="main0"></div>
    		</div>
    		<div class="my"></div>
    	</body>
    
    </html>
    

     

      这又是什么情况??  一句border: 1px solid black;  这么拽?

      

    看来还是要 用::before,

    <!DOCTYPE html>
    <html>
    
    	<head>
    		<meta charset="UTF-8">
    		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    
    		<title></title>
    		<style type="text/css">
    			* {
    				padding: 0px;
    				margin: 0px;
    			}
    			
    			.js {
    				 60px;
    				height: 60px;
    				margin: 0 auto;
    				position: relative;
    			}
    			
    			.js::before {
    				content: '';
    				 200px;
    				height: 200px;
    				margin: 0 auto;
    				border: 1px solid red;
    				transform: scale(0.3);
    				position: absolute;
    				top: -70px;
    				left: -70px;
    			}
    			
    			.my {
    				 100px;
    				height: 100px;
    				border: 1px solid red;
    				margin: 0 auto;
    			}
    		</style>
    	</head>
    
    	<body>
    		<div class="js">
    			<div class="main0"></div>
    		</div>
    		<div class="my"></div>
    	</body>
    
    </html>
    

     

       谁能解释一下border到底是个什么鬼?? 跪谢!!!!!

       

  • 相关阅读:
    10、函数介绍、函数参数、函数的返回值
    9、bytes类型,文件处理
    8、集合类型、文件处理
    7、列表类型、元组、字典类型
    6、for循环补充、可变类型与不可变类型、基本操作
    5、while循环与for循环
    4、基本运算符、if语法
    3、变量、常量、基本数据类型
    爬虫(一)
    小技能(二)
  • 原文地址:https://www.cnblogs.com/libin-1/p/5987838.html
Copyright © 2011-2022 走看看