css常见问题
CSS:
1、垂直居中布局
(1)已知宽高
(2)未知宽高
https://segmentfault.com/q/1010000004073623
2、文字退格
text-indent: 4em;
3、文字阴影
text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
4、图片置顶
父元素:position:absolute,top0 left0 bottom0 right0
子元素:width100% height100%
5、隐藏div时候不会变形重绘
用visibility :visible/hidden取代display:none
6、textarea
rows="30px" 定义高度
overflow:hidden滚动条隐藏
7、font中
(1)目前已知的绝对长度单位有in,cm,mm,pt,pc,px。即如果一个长度单位所指定的长度是根据另一个长度
相对长度单位
em 元素的字体高度
ex 字体x的高度
px 像素Pixels
% 百分比Percentage
绝对长度单位
in 英寸Inches(1英寸=2.54厘米)
cm 厘米Centimeters
mm 毫米millimetre
pt 点Points(1点=1/72英寸)
pc 皮卡Picas(1皮卡=12点)
(2)绝对大小值在w3c只有7个值,xx-small,x-small,small,medium,large,x-large,xx-large这7个绝对值,具体看7个绝对大小值,
而单位px,em,百分比都不在里面,所以这些都不是绝对大小值。
(3)对于百分比和em:
都会根据父元素来计算自身比例
假如div包含一个span标签,span标签指定为font-size:1.125em;或font-size:120%;,那么这个span标签文字大小计算如下:
16*1.125em=18px
16*120%=19.2px //显示应该是19px
(4)对于rem:
是从根元素计算,不管你的div标签包含N个子元素,你的子元素的字体大小都是直接由根元素计算得出
(5)假如你头部的meta设置像这样
<meta name="viewport" content="initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5, user-scalable=no"/>
那么你在设置文字字体的时候应该是为设计稿的2x,而不是直接按照设计稿输出。
8、retina屏下图片高清问题
图片放大到两倍,然后容器50%
如图片实际为:400px × 600px;
容器
img{
width:200px;
height:300px;
}
背景图片
img{
width: 200px;
height: 300px;
background-image: url(image@2x.jpg);
background-size: 200px 300px; // 或者: background-size: contain;
}
9、解决1px问题
当dpr(window.devicePixelRatio)为3时,线是原本的3倍,粗线缺乏美感
解决
测试发现绝大部分android机器用下面的vieport设置也完全可以实现1px的真实效果。但是新webkit下已经移除了对target-densitydpi=device-dpi的支持。所以主流android还是用标准的设置上述initscale=scale,因此最后的方案是主流的设备设置viewport为
<meta name="viewport" content="densitydpi=device-dpi,initial-scale=0.5,maximum-scale=0.5,minimum-scale=0.5">设置以上viewport还是无法改变默认980viewport的非主流设备(如vivo,云os等),设置如下:
<meta name="viewport" content="target-densitydpi=device-dpi,width=device-width,user-scalable=no"/>因此,最后的实现代码如下:
metaEl.setAttribute('content', 'target-densitydpi=device-dpi,user-scalable=no,initial-scale=' + scale + ',maximum-scale=' + scale + ', minimum-scale=' + scale);
//不通过加入具体设备的白名单,通过此特征检测 docEl.clientWidth == 980
//initial-scale=1不能省,因为上面设置为其他的scale了,需要重置回来
if(docEl.clientWidth == 980) {
metaEl.setAttribute('content', 'target-densitydpi=device-dpi,width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1');
}
其余方案还有用图片、用background-image、用box-shadow、用transform: scale(0.5)
详情看http://www.atatech.org/articles/26335#0
JS:
1、获取移动端设备的像素点
window.devicePixelRatio
代码规范:
1、js用驼峰、css用横杠
2、css横杠不要超过3个
3、不要用中文命名
4、不要用.xxx p .xxx div,改回用命名
5、所有弹窗用一个section包着
6、float的时候外面用一个div包着
7、数据交互用到的元素用id
8、bg名字和css3重复。改
9、background的样式分开一行行写,不要放一起
10、page页面留下<div id="page-index"></div>.页面内容在components/boot/xxl里全局变量var $page, $root;对外两个方法page.show和page.hide
css常见问题的更多相关文章
- CSS常见问题及兼容性
CSS常见问题 1 (IE6,7)H5标签兼容 解决方法1:(只显示核心代码) 1<script> ; ; ; ;;;};;;;;;;; ...
- XHTML CSS 常见问题和解决方案
原文地址:XHTML CSS 常见问题和解决方案 作为前端开发人员,在日常的页面制作时,不可避免的会碰上这样那样的问题,我挑选了其中的一些进行总结归档,希望对大家会有所帮助: 1.如何定义高度很小的容 ...
- CSS 常见问题笔记
CSS 常见问题 布局 一.盒模型宽度计算 问题:div1 的 offsetWidth 是多少? <style> #div1 { width: 100px; padding: 10px; ...
- Html / CSS常见问题 解决方案
解决Safari下input光标过大 input { line-height: normal; } 设置浮层 html, body { /*只有父元素设置宽高为100%子元素设置宽高100%时才能撑满 ...
- DIV+CSS常见问题:DIV如何设置一个像素高度?
CSS如何控制DIV实现1像素高度呢?问题看起来很简单,但万恶的IE6会让你很麻烦,不过解决办法很多,本文将介绍最简单的一种:DIV{height:1px;line-height:1px;font-s ...
- 实战中总结出来的CSS常见问题及解决办法
一.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值. 二.同一个的class选择符可以在一个文档中重复出现,而id选择符却只能出现一次.对 一个标签同时使用cla ...
- DIV+CSS 常见问题及解决办法整理
http://blog.shaogroup.com/divcss-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E5%8F%8A%E8%A7%A3%E5%86%B3%E5% ...
- 分针网—IT教育: Html / CSS常见问题的解决方案
1. 解决Safari下input光标过大 2. 设置浮层 3. CSS绘制三角形 4. 清除浮动 1) 浮动元素父级添加样式 2) 父元素后添加伪元素 3) 同样可以使用 ...
- css常见问题汇总
1. 如果我想显示两行文字第二行超出部分‘...’? 限制在一个块元素显示的文本的行数. -webkit-line-clamp 是一个 不规范的属性(unsupported WebKit proper ...
随机推荐
- Winform开发框架的重要特性总结
从事Winform开发框架的研究和推广,也做了有几个年头了,从最初的项目雏形到目前各种重要特性的加入完善,是经过了很多项目的总结归纳和升华,有些则是根据客户需要或者应用前景的需要进行的完善,整个Win ...
- 如何修改myeclipse 内存?eclipse.ini中各个参数的作用。
修改MyEclipse/eclipse文件夹中配置文件eclipse.ini中的内存分配就哦了 =================================== 一般的ini文件设置主要包括以下 ...
- Mantis 缺陷管理系统配置与安装
什么是Mantis MantisBT is a free popular web-based bugtracking system (feature list). It is written in t ...
- Python入门笔记(17):错误、异常
一.什么是错误,什么是异常,它们两者区别 这里解释如下:个人觉得很通俗易懂 错误是指在执行代码过程中发生的事件,它中断或干扰代码的正常流程并创建异常对象.当错误中断流程时,该程序将尝试寻找异常处理程序 ...
- Redis持久化-数据丢失及解决
Redis的数据回写机制 Redis的数据回写机制分同步和异步两种, 同步回写即SAVE命令,主进程直接向磁盘回写数据.在数据大的情况下会导致系统假死很长时间,所以一般不是推荐的. 异步回写即BGSA ...
- Servlet3.0 Test
1. Servlet3.0 Test and Annotation used 你可以从tomcat7中lib文件夹中找到servlet-api.jar package com.goodfan.serv ...
- CentOS7 Debian 8 安装VMware-tools
如在安装过程中碰到未找到gcc 或者 kernel headers的可按以下方案解决,适用任意版本 CentOS 7 1. Update the kernel: $ yum update kernel ...
- Linux Shell系列教程之(十二)Shell until循环
本文是Linux Shell系列教程的第(十二)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上两篇文章Linux Shell系列教程之(十)Shell for循环和Lin ...
- MyKTV项目总结
今天和大伙分享一下我的KTV系统,我想大家都有自己独特的魅力,都有自己的风采,都有自己骄傲的一部分. 在这里我就抛砖引玉,聊聊我的KTV项目,希望大家能给出自己的建议.. 首先,我们先了解一下:当我们 ...
- PHP json编码遇到的问题
今天遇到了json编码解码之后中文消失的问题,一探究竟,写下这篇文章 PHP中提供了json_encode 和json_decode 这对函数 将PHP中 值转化成 字符串,但是遇到中文的时候,很容 ...