CSS是一种叫做样式表的技术。有的人称之为“层叠样式表”。
在主页制作时采用CSS技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。
只要对相应的代码做一些简单的修改,就可以改变同一页面的不同部分,或者页数不同的网页的外观和格式。
空间页面CSS说明body 整个空间页面{background-color:#FFFFFF}
空间名称和简介区域
#header 主体部分{height:89pxbackground:#3399CC}
#header div.lc 左背景图{background:url(temp1/hdl.jpg) no-repeat}
#header div.rc 右背景图{background:url(temp1/hdr.jpg) no-repeat top right}
#header div.tit 空间名称{top:8pxleft:20pxline-height:22pxfont-size:20pxfont-family:黑体}
#header div.tit a.titlink 空间名称链接{color:#FFFFFFtext-decoration:none}
#header div.tit a.titlink:visited{color:#FFFFFFtext-decoration:none}
#header div.desc 空间简介{top:33pxleft:20pxcolor:#FFFFFFfont-size:13px}
#tabline TAB菜单下方的横线{top:89pxbackground-color:#FFFFFF}
#tab TAB菜单主体{top:67pxbackground:url(temp1/tabbg.gif) repeat-x}
#tab a.on,#tab a.on:link,#tab a.on:visited TAB选中状态{margin-top:3pxborder-left:1px solid #FFFFFFborder-right:1px solid #FFFFFFborder-top:1px solid #FFFFFFline-height:19pxbackground-color:#F3F1F1color:#197CAEfont-size:14px}
#tab span TAB与TAB之间的分割符“|”{color:#FFFFFFfont-size:14px}
#tab a:link TAB未选中状态{color:#FFFFFFtext-decoration:nonefont-size:14px}
#tab a:visited{color:#FFFFFFtext-decoration:nonefont-size:14px}
#tab2 设置TAB菜单主体{background:#DAE9F5}
#tab2 span TAB选中状态{color:#000000font-size:12pxfont-weight:bold}
#tab2 a TAB未选中状态{font-size:12px}
#tab2 a:link{color:#0000CC}
#tab2 a:visited{color:#0000CC}
--------------------------------------------------------------------------------
内容区域 .stage(TAB菜单与版权信息之间的区域){background:#F3F1F1}
其它区域(即访问量等信息)
#comm_info 主体{color:#333333font-family:Arialtext-align:left}
#comm_info div.line 分界线{margin-top:5pxline-height:8pxborder-top:1px solid #D2E9F4}
#comm_info a 链接{color:#3399CC}
--------------------------------------------------------------------------------
页码区域
#page 主体{height:30pxfont-size:14pxfont-family:Arialtext-align:center}
#page span 当前页码(不可点击){padding:3pxcolor:#000000font-size:14pxfont-weight:bold}
#page a.pc 上一页和下一页{color:#3399CCfont-size:14pxfont-weight:bold}
#page a.pc:visited{color:#3399CC}
#page a.pi 页码(可点击){padding:3pxcolor:#3399CCfont-size:14px}
#page a.pi:visited{color:#3399CC}
--------------------------------------------------------------------------------
模块
.mod {margin-bottom:10px}
.modhandle{cursor:move}
.modth 模块标题栏主体{height:24px}
.modhead{padding:4px 4px 0 4px}
.modopt 模块操作区(如写新文章){padding:4px 4px 0 0}
.modtit 模块标题区(如文章列表){color:#FFFFFFfont-size:12pxfont-weight:bold}a.modtit{color:#FFFFFF}a.modtit:visited{color:#FFFFFF}
.modtitlink{color:#FFFFFFfont-size:12pxfont-weight:bold}a.modtitlink{color:#FFFFFFtext-decoration:none}a.modtitlink:visited{color:#FFFFFFtext-decoration:none}a.modtitlink:hover{color:#FF5100text-decoration:underline}
.modact 操作文字链接(如文章列表){color:#FFFFFFfont-size:12px}a.modact:link{color:#FFFFFF}a.modact:visited{color:#FFFFFF}
.modbox 模块内容区{padding:10px 10px 0 10pxbackground-color:#FFFFFF}
.modtl 模块左上角背景{background:url(temp1/ptitl.gif) no-repeat top leftline-height:1px}
.modtc 模块中上背景{background:url(temp1/ptitc.gif) repeat-x}
.modtr 模块右上角背景{background:url(temp1/ptitr.gif) no-repeat top rightline-height:1px}
.modbl 模块左下角背景{background-color:#FFFFFFline-height:1px}
.modbc 模块中下背景{background-color:#FFFFFFline-height:1px}
.modbr 模块右下角背景{background-color:#FFFFFFline-height:1px}
--------------------------------------------------------------------------------
文章区域
#m_blog div.tit 文章标题{font-size:14pxfont-weight:bold}
#m_blog div.tit a 文章标题链接{color:#333333font-size:14pxfont-weight:bold}
#m_blog div.tit a:visited{color:#333333}
#m_blog div.date 文章发表日期{margin:5px 0 8px 0color:#666666}
#m_blog div.cnt 文章内容{color:#333333line-height:20pxfont-size:14px}
#m_blog div.more{margin:14px 0 16px 0}
#m_blog div.more a 阅读全文链接{color:#3399CCfont-size:14px}
#m_blog div.more a:visited{color:#3399CC}
#m_blog div.opt 文章操作区(如编辑、评论等){color:#666666font-size:12px}
#m_blog div.opt a 文章操作链接{color:#3399CCfont-size:12px}
#m_blog div.opt a:visited{color:#3399CC}
#m_blog div.line 分界线{margin-top:17pxline-height:17pxborder-top:1px solid #D2E9F4}
#m_blog div.none 无文章提示信息{padding:100px 0 100px 0color:#333333font-size:14px}
--------------------------------------------------------------------------------
个人档案区域
#m_pro a 链接{color:#3399CC}
#m_pro a:visited{color:#3399CC}
#m_pro div.image 个人头像{text-align:center}
#m_pro div.act 操作区(如加为好友、发送消息){margin-top:10px}
#m_pro div.user 用户名{margin-top:10pxcolor:#333333font-size:12pxfont-weight:bold}
#m_pro div.desc 用户简介{color:#333333font-size:12px}
#m_pro div.line 分界线{margin-top:17pxline-height:17pxborder-top:1px solid #D2E9F4}
#m_pro td{color:#333333line-height:24pxfont-size:14px}
--------------------------------------------------------------------------------
相册区域
#m_album div.image 照片{text-align:center}
#m_album div.page {color:#666666font-size:12pxtext-align:center}
#m_album div.page a{color:#0000CCfont-size:12px}
#m_album div.page a:visited{color:#0000CC}
--------------------------------------------------------------------------------
友情链接区域
#m_links div.item 子项{color:#333333font-size:12px}
#m_links div.item a 名称(链接){color:#3399CCfont-size:12pxtext-decoration:none}
#m_links div.item a:visited{color:#3399CC}
#m_links div.line 分界线{margin-top:5pxline-height:8pxborder-top:1px solid #D2E9F4}
--------------------------------------------------------------------------------
文章分类
#m_artclg div.item 子项{color:#666666font-size:12px}
#m_artclg div.item a 分类名称(链接){color:#3399CCfont-size:12px}
#m_artclg div.item a:visited{color:#3399CC}
#m_artclg div.line 分界线{margin-top:5pxline-height:8pxborder-top:1px solid #D2E9F4}
--------------------------------------------------------------------------------
最新评论区域
#m_comment div.item 子项{color:#333333font-size:12px}
#m_comment div.item a 发表人(链接){color:#3399CCfont-size:12px}
#m_comment div.item a:visited{color:#3399CC}
#m_comment div.item a.cnt 评论摘要(链接){color:#333333font-size:12pxtext-decoration:none}
#m_comment div.item a.cnt:visited{color:#333333text-decoration:none}
#m_comment div.item a.cnt:hover{color:#333333text-decoration:underline}
#m_comment div.line 分界线{margin-top:5pxline-height:8pxborder-top:1px solid #D2E9F4}
--------------------------------------------------------------------------------
相册列表
#m_albumlist div.note{color:#333333font-size:14px}
#m_albumlist div.desc 简介{margin-bottom:12pxpadding:3px 10px 3px 10pxline-height:22pxbackground-color:#F2F2F2font-size:14px}
#m_albumlist div.none 无照片提示信息{padding:100px 0 100px 0color:#333333font-size:14px}
#m_albumlist div.line 分界线{margin-top:10pxline-height:16pxborder-top:1px solid #D2E9F4}
#m_albumlist div.tit 照片标题{margin:6px 0 7px 0color:#333333font-size:14px}
#m_albumlist div.tit a 照片标题链接{color:#3399CCfont-size:14px}
#m_albumlist div.tit a:visited{color:#3399CC}
#m_albumlist span.count 照片数量{color:#666666font-size:12pxfont-weight:bold}
#m_albumlist span.size 照片尺寸{color:#999999font-size:12pxfont-family:Arial}
#m_albumlist a.act 操作区链接(如编辑、删除){color:#3399CCfont-size:12px}
#m_albumlist a.act:visited{color:#3399CC}
#m_albumlist a.page 页码链接{color:#0000CCfont-size:14px}
#m_albumlist a.page:visited{color:#0000CC}
#m_albumlist td.image{padding:5pxborder:1px solid #999999background:#FFFFFF}
--------------------------------------------------------------------------------
好友列表
#m_friend div.filter{margin-bottom:10pxpadding-left:10pxpadding-top:10pxheight:27pxline-height:27px}
#m_friend div.catalog{margin-bottom:10pxpadding-left:10pxheight:27pxline-height:27pxbackground-color:#F2F2F2font-size:14px}
#m_friend div.user{margin-top:4pxcolor:#333333font-size:12px}
#m_friend div.user a 好友名称(链接){color:#3399CCfont-size:12px}
#m_friend div.user a:visited{color:#3399CC}
#m_friend div.line 分界线{margin-top:10pxline-height:16pxborder-top:1px solid #D2E9F4}
--------------------------------------------------------------------------------
设置访问统计、模板设置
#m_setting a 链接{color:#3399CC}
#m_setting a:visited{color:#3399CC}
#m_setting 主体{line-height:22pxcolor:#333333font-size:14px}
#m_setting img.sel 模板预览图(选中状态){border:4px solid #FFDB7B}
#m_setting img.unsel 模板预览图(未选中状态){border:1px solid #D2D2D2}
#m_setting span.tit 模板标题名称{font-size:14px}
#m_setting span.usr 作者名{color:#666666}
#m_setting div.sel “当前模板”文字{padding-top:6pxfont-size:14pxfont-weight:bold}
#m_setting div.line 分界线{margin-top:20pxline-height:16pxborder-top:1px solid #D2E9F4}
--------------------------------------------------------------------------------
系统公告
#m_sysinfo a 链接{color:#3399CC}
#m_sysinfo a:visited{color:#3399CC}
#m_sysinfo 主体{line-height:22pxcolor:#333333font-size:14px}
#m_sysinfo span.new 最新{color:#FF0000font-size:10pxfont-family:Arial}
#m_sysinfo span.date 发布时间{color:#666666font-size:14px}
--------------------------------------------------------------------------------
基本选项
#m_setbase 主体{color:#333333font-size:14px}
#m_setbase td{color:#333333font-size:14px}
#m_setbase div.line 分界线{margin-top:5pxline-height:8pxborder-top:1px solid #D2E9F4}
--------------------------------------------------------------------------------
网友评论
#in_comment 主体{width:710px}
#in_comment div.tit 标题{margin-bottom:12pxcolor:#333333font-size:14pxfont-weight:bold}
#in_comment div.user 发表人名{margin-bottom:6pxcolor:#333333font-size:12px}
#in_comment div.user a 发表人名(链接){color:#3399CCfont-size:12px}
#in_comment div.user a:visited{color:#3399CC}
#in_comment div.user span.date 发表时间{color:#666666font-size:12px}
#in_comment div.desc 评论内容{color:#333333font-size:12px}
#in_comment div.line 分界线{margin-top:17pxline-height:17pxborder-top:1px solid #D2E9F4}
#in_send div.tit 发表评论(标题){margin:10px 0 10px 0color:#333333font-size:14pxfont-weight:bold}
--------------------------------------------------------------------------------
文章存档
#m_filed div.item{color:#666666font-size:12px}
#m_filed div.item a{color:#3399CCfont-size:12px}
#m_filed div.item a:visited{color:#3399CC}
#m_filed div.line{margin-top:5pxline-height:8pxborder-top:1px solid #D2E9F4}
--------------------------------------------------------------------------------
自定义模块
自定义模块1
#m_mylink1 div.item{color:#333333font-size:12px}
#m_mylink1 div.item a{color:#3399CCfont-size:12pxtext-decoration:none}
#m_mylink1 div.item a:visited{color:#3399CC}
#m_mylink1 div.line{margin-top:5pxline-height:8pxborder-top:1px solid #D2E9F4}
自定义模块2
#m_mylink2 div.item{color:#333333font-size:12px}
#m_mylink2 div.item a{color:#3399CCfont-size:12pxtext-decoration:none}
#m_mylink2 div.item a:visited{color:#3399CC}
#m_mylink2 div.line{margin-top:5pxline-height:8pxborder-top:1px solid #D2E9F4}
自定义模块3
#m_mylink3 div.item{color:#333333font-size:12px}
#m_mylink3 div.item a{color:#3399CCfont-size:12pxtext-decoration:none}
#m_mylink3 div.item a:visited{color:#3399CC}
#m_mylink3 div.line{margin-top:5pxline-height:8pxborder-top:1px solid #D2E9F4}
自定义模块4
#m_mylink4 div.item{color:#333333font-size:12px}
#m_mylink4 div.item a{color:#3399CCfont-size:12pxtext-decoration:none}
#m_mylink4 div.item a:visited{color:#3399CC}
#m_mylink4 div.line{margin-top:5pxline-height:8pxborder-top:1px solid #D2E9F4}
关于css常见问题,大多是移动端的。 简单的排版规则:条目与条目之间空两行,每条内容部分分段空一行。标点符号全部用中文字符。css的标点用英文。 条目编号后面紧跟英文字母的,要空一格,比如 4. css,“4.”和“css”之间有一个空格。 一、在做手机轮播图时,banner图的宽度是手机屏幕的宽度,轮播图加了左右切换按钮,按钮的position:absolute;定位的元素,定位的元素超出父容器时(超出了100%),会出现滚动条。 二、在移动端有3种布局可选。 1.定位布局 说明:头部、尾部是fixed定位。中间内容部分绝对定位,overflow-y:auto; 2. flex布局(朕极力推荐) 说明:这里写的简洁,没有写很多兼容,移动端兼容性比较好,安卓5.1以上都可以用。用的是较新的flex声明。(这个布局是抄袭手淘团队的。) 3.普通的流式布局 说明:头部和尾部依然是fixed定位,但是#content内容部分则是用padding-top和padding-bottom来支撑页面,这种布局相当垃圾,会带来各种页面上下莫名其妙的留白问题。 三、css属性 1. word-wrap:break-word; word-break:break-all;让一行连续的数字或英文字母遇到边界自动换行。 2. -webkit-user-select:none | normal | text;这个属性是禁止用户选择、复制文字,同时还会使input框、select框不能获取焦点,导致无法输入或选择。 所以在使用这个属性时,注意防止对input和select的污染。 3. css3属性选择器。li[class*='act'],可以选中所有class中有‘act’的li元素。 $('li').attr('class').indexOf('act')只是获取第一个li的class,然后判断是否有‘act’ 通过for循环可以进一步操作, for(var i = 0i <$("li[class*='act']").lengthi++){ $("li[class*='act']")[i] . . . } 4.清除浮动,解决高度塌陷 a.伪类(抄袭bootstrap的做法) .clearfix{} .clearfix:after{ display:tablecontent:' 'clear:both} b.王妮的做法 .box{ clear:bothoverflow:hidden} c.对于子元素写margin-top把父级拖下来的情况 (百度说是W3C的标准,只要破坏了父级子级紧贴的结构就可以了) 给父级写border-top,或者给父级写padding-top。采用b方法也可以,a方法无效。 5. css高度单位和颜色单位 height:calc(100vh - 200px)目前来看,兼容性还不错。注意,减号两边是有空格的。 background:rgba(255,255,255,0.5)rgb颜色值 和 颜色透明度。 6.关于 padding-top:100%padding-left:100% 可以利用这两个属性做绝对正方形。比如微信朋友圈的照片9宫格,qq空间的照片9宫格,sina微博的照片9宫格。屏幕宽度未知,一行排3个,每个宽度都是33.33333%,但是高度不能写百分比了。在每个宽度为33.3333%的元素里再写一个div,这个div的默认宽度就是父级的33.33333%,再用padding-top:100%把高度撑开,padding-top:%就是根据已有宽度计算,padding-top:100%padding-top的px值就和宽度相同,这样,正方形就做出来了,在正方形里面position:absolute一个div,width:100%height:100%然后在这个div里面布局就好。 每个正方形的间距可以用qq空间的2px的透明边框来做,也可以像sina微博一样,用左右padding和margin-bottom来做。一张图和四张图的时候,sina是另外写两个class来做的。 qq空间是js插件写进去的,最大宽度是290px,高度是根据最大宽度计算出来的。 7. 0.5px的线 a.发现qq空间的细线,兼容2倍屏和3倍屏 @media only screen and (-webkit-min-device-pixel-ratio : 1.5),(min-resolution:120dpi),(-ms-high-contrast:active),(-ms-high-contrast:none) { .action.flex .dropdown-menu .btn:after,.action.flex:after,.action.flex:before,.feed .source:after,.min-comments .hr,.min-comments:nth-child(1):after { -webkit-transform:scaleY(.5) -moz-transform: scaleY(.5) -ms-transform: scaleY(.5) -o-transform: scaleY(.5) transform: scaleY(.5) } .action.flex .dropdown-menu .btn:after,.action.flex:before,.min-comments:nth-child(1):after { -webkit-transform-origin: 100% 0 -moz-transform-origin: 100% 0 -ms-transform-origin: 100% 0 -o-transform-origin: 100% 0 transform-origin: 100% 0 } .action.flex:after,.action.flex>.btn:after,.feed .source:after { -webkit-transform-origin: 0 100% -moz-transform-origin: 0 100% -ms-transform-origin: 0 100% -o-transform-origin: 0 100% transform-origin: 0 100% } } @media only screen and (-webkit-device-pixel-ratio: 1.5) { .action.flex .dropdown-menu .btn:after,.action.flex:after,.action.flex:before,.feed .source:after,.min-comments .hr,.min-comments:nth-child(1):after { -webkit-transform:scaleY(.6666) -moz-transform: scaleY(.6666) -ms-transform: scaleY(.6666) -o-transform: scaleY(.6666) transform: scaleY(.6666) } } @media only screen and (-webkit-device-pixel-ratio: 3) { .action.flex .dropdown-menu .btn:after,.action.flex:after,.action.flex:before,.feed .source:after,.min-comments .hr,.min-comments:nth-child(1):after { -webkit-transform:scaleY(.33) -moz-transform: scaleY(.33) -ms-transform: scaleY(.33) -o-transform: scaleY(.33) transform: scaleY(.33) } } b. weui的作法是 .weui-cells:after { content: " " position: absolute left: 0 bottom: 0 right: 0 height: 1px border-bottom: 1px solid #e5e5e5 color: #e5e5e5 -webkit-transform-origin: 0 100% transform-origin: 0 100% -webkit-transform: scaleY(0.5) transform: scaleY(0.5) z-index: 2 } 8.背景图片尺寸background-size,img标签object-fit,object-position。 background-size:contain | cover | auto 90% | 50% auto 这是以背景图的方式展示图片的,如果用img元素的话, object-fit:fill | contain | cover | none | scale-down(和background-size效果类似) object-position:center和background-position的取值一样。 这两个属性一起用的话,就能让img元素src的图片效果像背景图片的效果一样,不会因为图片尺寸不成比例而走形。但是兼容性不太好,目前只适合在移动端用。 9.阻止手机弹出默认菜单,长按img标签或者长按a标签会弹出系统默认菜单(ios上,安卓上没测)。 -webkit-touch-callout:none 10.给文字写行高时,让文字垂直居中时,要把高度也一起写了,line-height:35pxheight:35px 在用appcan做hybrid app时,发现在华为meta8上,用 ul li 做九宫格,li 浮动排在一行时,每个 li 有文字,高度用li的行高撑开的,没有文字的 li 和有文字的 li 的高度是不一样的。有的格子有文字有的没有文字,导致九个格子没有排在3行,有格子掉下去了,排成了4行。所以,在用行高让文字居中时,高度和行高要都写上。 11. text-align:justify p标签内大段文字时,除了最后一行,其余的文字都是左对齐,导致段落文字距离右边间距明显大于左边。 可以利用这个属性不处理最后一行的特性,做这种布局: 上面这个布局有一点bug,最后一行是留白,把父级撑高了,原因是父级认为所有子代,包括空文本节点都是占据空间的,哪怕空格,也占据空间。可以给父级 ul 写 font-size:0;就能把底部留白去除了,然后给子代再写font-size:14px就可以了。 但是,text-align:justify毕竟是处理空格(拉伸空格来使内部元素水平分散),所以在html中,li 要是连着写和分段写,表现结果是不一样的,所以这种奇妙的布局还是有些许不完美,甚至不能用。 12.去除-webkit-的滚动条 #content::-webkit-scrollbar{ display:none} 设置滚动条样式 /*滚动条宽度*/ #content::-webkit-scrollbar{ width:5px} /*滚动条滑块*/ #content::-webkit-scrollbar-thumb{ background:rgba(0,0,0,0.25)border-radius:3px} /*滚动条的整个背景*/ #content::-webkit-scrollbar-track-piece{ background:#eee} TGuide /* scrollbar */ ::-webkit-scrollbar{width:10pxheight:10px} ::-webkit-scrollbar-button{display:none} ::-webkit-scrollbar-track{background-color:black} ::-webkit-scrollbar-track-piece{background:#FFF} ::-webkit-scrollbar-thumb{background-color:#8E8E8Eborder-radius:5px} ::-webkit-scrollbar-thumb:hover{background-color:#3B3B3B} ::-webkit-scrollbar-corner{background-color:#535353} /*::-webkit-scrollbar-resizer{background-color:#FF6E00}*/ 前面不加选择器表示,所有出现滚动条的元素。 13.设置placeholder的样式 input::-webkit-input-placeholder{ color:#999} input::-moz-input-placeholder{ color:#999} input:-ms-input-placeholder{ color:#999} 注意 -ms- 前面是一个 “ :”。 14.移动端点击某一行 :active 时添加背景色,比如 li:active{ background:#eee} 时,要给 body标签上写ontouchstart,否则没有效果。 另一方面,给body添加,可以阻止图片被默认拖拽。百度的logo就可以被拖拽。 15.pageshow()和pagehide()方法。 问题描述:A页面跳转到B页面,在B页面操作后,返回到A页面,A页面的ajax方法不能被再次触发。appcan里面从B页面返回A页面是直接关闭了B页面,微信里是从缓存里取。这两者都不能再次触发A页面的ajax。比如,修改姓名,修改性别。从A页面点击input跳转到B页面进行修改操作,修改完成之后返回A页面,发现信息没有刷新,此时需要主动触发。 解决方法:可以监听pageshow方法,用addEventListener方法进行监听。pageshow()方法的触发条件是,只要页面被显示就触发,比如appcan里的B页面覆盖在A页面,把B页面关闭,A页面自然就展现出来了,那么A页面的pageshow方法就会触发;微信里,点击返回,虽然是从缓存里取页面,但也会触发pageshow方法。pagehide()顾名思义。 16.关于position。 华为meta7,安卓版本4.4.2,position:relative的元素比position:absolute的元素层级要高。百度新闻的导航效果,也是利用了这个。很奇怪。 这种结构,i.line是absolute,每个div都是relative,安卓4.4.2上 i.line 会被父级的兄弟div遮挡住。 解决办法是,把 i.line 拿出来,和div同级。 17. background:url() no-repeat center, url() no-repeat center可以一次性放两个图片,中间用逗号隔开。 18.关于移动端软键盘弹起,盖住页面的问题。 核心解决办法是利用 document.activeElement.scrollIntoView(false)参数false,表示activeElement的元素与页面下边对齐,true表示activeElement的元素与页面上边对齐。这个方法兼容性很好。 另一个方法与之类似 document.activeElement.scrollIntoViewIfNeeded()这个方法效果不是很好,没有上面那个好用。 19.常见于小说、报纸排版的column布局。 常用的5个属性有4个是知晓效果的: column-width:每列的宽度。 column-gap:列与列之间的间距。 column-fill:不知有何软用。 column-rule:列与列直接的分割线,与border属性效果一样。 column-count:总共分多少列。(这个属性受column-width限制,当同时写上column-width和column-count时,以column-width优先,比如总宽度800px,height:200pxcolumn-width:400pxcolumn-count:4显然,800px最多只能分2列,所以优先以column-width进行计算。) 小兼容:ios上,横向滚动 overflow-x:auto的容器不适合直接当成分栏布局的容器,应该在 overflow-x 的元素内嵌套一个div当做分栏布局的容器。否则会出现,分栏线,column-rule不跟随容器滚动的奇异现象。另外,column-gap不适合赋值,应当将column-gap写成0,列与列之间的间距可以用分栏布局的子元素的左右padding来做。 大段文字 .box{ width:300pxheight:14emoverflow-x:auto} /*滚动的容器*/ .col{ height:11.9emtext-align:justifycolumn-count:2column-gap:0} /*分栏的容器*/ .col >p{ padding:0 .5emline-height:1.2} /*文字内容的容器,加左右padding以增加列与列之间的间距。*/ 四、貌似很多webapp都会写两个meta标签不确定是否支持16进制的颜色值。(好像测试过,16进制颜色没有效果。在appcan里也没有效果。) 五、 一般不能上传相同图片 可以用 $('input[type="file"]').wrap('').closest('form').get(0).reset()重置后就可以了。 六、在安卓上touchmove出现了神奇的bug,百度上说,安卓上touchmove的一瞬间就会触发touchcancel,touch事件就全部被取消了。IOS上是没有这个问题的。 解决方法是:在touchmove里写e.preventDefault()即可。但是这样的话,手指滑动页面就不能scroll了。页面将无法滚动了。 七、flex布局 1. 2012年以后的版本 给父级添加 display:-webkit-flexdisplay:flex flex盒子内子元素的排列方向称作主轴,与主轴垂直的称作交叉轴。 flex盒子内的子元素可以被作项目。 注意:设为flex后,其子元素的float、clear、vertical-align属性就会失效。 a.作用于父级的6个属性:flex-direction,flex-wrap,flex-flow,justify-content,align-items,align-content。 //子元素的排列方向 flex-direction:row(默认值,从左到右) | row-reverse(从右到左) | column(从上到下) | column-reverse(从下到上) //子元素是否换行 flex-wrap:nowrap(默认值,不换行) | wrap(换行) | wrap-reverse(换行,但第一行在下方) //子元素排列方向和子元素是否换行的简写 flex-flow:row nowrap(默认值,从左到右,不换行。) //项目(子元素)在主轴上的对齐方式 justify-content:flex-start(默认值,以起点为始) | flex-end(以终点为始) | center(居中) | space-between(首尾两个元素紧贴边界,其余元素之间间隔相等) | space-around(每个项目的两侧间隔相等,相当于给每个项目加了margin,并且左右margin相等。所以首尾元素与边界都是有间距的。) //项目(子元素)在交叉轴上的对齐方式 align-items:flex-start(以起点为始) | flex-end(以终点为始) | center(居中) | baseline(与项目的第一行文字的基线对齐) | stretch(默认值,在交叉轴方向撑满父级) //多根轴线的对齐方式,如果只有一根轴线,该属性不起作用。 align-content:flex-start(与交叉轴的起点对齐) | flex-end(与交叉轴的终点对齐) | center(与交叉轴的中点对齐) | space-between(与交叉轴两端对齐,轴线之间的间隔平均分布) | space-around(每根轴线两侧的间隔都相等。轴线之间的间隔比轴线与边框的间隔大一倍,第一行和最后一行不会紧贴边框) | stretch(默认值,铺满整个交叉轴) ( align-content:stretch第一根轴线与边框对齐,其他轴线均分父级间隙。 ) b.作用于项目(子元素)的6个属性:order,flex-grow,flex-shrink,flex-basis,flex,align-self。 //子元素的排列顺序 order:0(默认值) | 1 | 2 | 3 . . . //项目(子元素)的放大比例 flex-grow:0(默认值,默认不放大,尽管有剩余空间) | 1 | 2 | 3 . . . //项目的缩小比例 flex-shrink:1(默认值,当空间不足时,该项目将缩小) | 0(不论如何,都不缩小) //项目占据的主轴空间 flex-basis:auto(默认值,项目本来的大小) | 固定值(200px,50%,100% . . .) //flex-grow,flex-shrink,flex-basis的简写 flex :0 1 auto; flex:0 1 auto(默认值,有多余空间也不放大,但空间不足会缩小,默认占据空间就是自身大小) flex:auto=>flex:1 1 auto根据空间大小,可放大可缩小。(有兼容性问题,chrome可以正常解析 flex:auto-- flex:1 1 auto但 IE 就搞笑了,IE10解析出来的flex:auto -- flex:1 0 auto;只放大,不缩小。IE11解析出来的flex:auto;和chrome一样,可放大可缩小。所以在用这个属性的时候,要写完整值,不要简写。) flex:none; -- flex:0 0 auto;不放大,也不缩小。 //单个项目与其他项目不一样的对齐方式,会覆盖父级的align-items align-self:auto(默认值, 继承父级的align-items的值) | flex-start | flex-end | center | baseline | stretch除了auto,其他的与父级align-items属性一致。 注意要活用align-self:stretch和align-items:stretch 2. 2009年的版本 目前新版本被支持的很好,所以旧版的直接写带前缀的。 display:-webkit-boxdisplay:-ms-flexbox 子元素如果有display:inline的,要把子元素写成display:block2012年的版本不需要。 a.父级的5个属性。-webkit-box-pack,-webkit-box-align,-webkit-box-direction,-webkit-box-orient,-webkit-box-lines。 //项目在主轴上的对齐方式 -webkit-box-pack:start(默认值,从起点开始) | end | center | justify //项目在交叉轴上的对齐方式 -webkit-box-align:stretch(默认值,交叉轴方向撑满父级) | start | end | center | baseline //项目的排列顺序 -webkit-box-direction:normal(默认值,以起点为始) | reverse(以终点为始) //主轴方向 -webkit-box-orient:horizontal(默认值,水平方向) | vertical(垂直方向) | inline-axis(行内方式,映射为horizontal) | block-axis(块方式排列,映射为vertical) //项目(子元素是否换行) box-lines:single(默认值,不允许) | multiple(允许) 经测试,没有浏览器支持,这个属性不能用。 b.子元素的3个属性。box-flex,box-flex-group,box-ordinal-group。 //是否缩放 -webkit-box-flex:0(默认值,不放大也不缩小) | 1 | 2 | 3 . . . //子元素排列次序 -webkit-box-ordinal-group:1 | 2 | 3 . . . 从小到大排列。 3. 对 1、2 的小结。 2012年版本比2009年的版本主要多了两个属性,1个是子元素是否换行,flex-wrap,2009年的box-lines不起作用。还有一个是子元素在主轴的对齐方式,2012年的justify-content:space-around2009年的没有这个效果,但是可以通过加左右padding值的方式做到。 如果要兼容2009年版本的盒子布局又想换行的,只能改用float布局。 八、html结构嵌套问题 p标签内不要嵌套块元素,其他的像h、p、dl . . .的块元素都会发生解析错误。可以嵌套行间元素。 类似的,还有a标签里不能再出现a标签,嵌套多少层都不行。 html标签嵌套要按照块元素包含行间元素的规则来写。 九、标签 让浏览器用最新内核渲染。 十、form标签一点特性 在移动端,input框获取焦点时,浏览器会弹出软键盘,想让软键盘的enter键变成搜索两个字,需要让这个input按照这种结构写: 说明:onsubmit='return false'阻止表单默认提交,便于自己操作。 input 的 type 必须是 search。 input 的 加了style='position:relative',防止ios上点击搜索按钮会闪屏(白屏)。 十一、浏览器兼容 1.关于table表格的宽度设置问题。 Firefox和chrome的解析方式是不一样的,chrome会把你写的table宽度全部转化成px。Firefox则不会,所以在td写行间样式宽度时,不能百分比和px混用,要统一,要么每个td都写百分比的宽,要么都写px的宽;不要这几个td写百分比,那几个td写px。 2.某些安卓不识别height:calc()可以用flex布局代替。 十二、KTV字幕效果 实现方式1: 把文字写两遍,两个行间元素span,包裹相同的文字。 首页 首页 或者 首页 首页 实现原理是:让内部两个span宽度相等,其中一个设置width:0%;overflow:hidden然后用js动态控制width从0% -- 100%。 实现方式2:(张鑫旭说只适用于chrome,但是我测了下,好像firefox也是可以的。) 实现原理:background-image是覆盖在background-color上的,chrome有个私有属性 -webkit-background-clip:text意为背景裁切,以文字为裁切起止。效果就是背景图片只会展示文字的书写路径,除了文字的其他部分空间不展示背景图。再结合-webkit-text-fill-color:transparent将文字渲染的颜色写为透明,这样,文字路径就透出了背景图。再改变背景图片的水平位置,就能露出文字和背景图片下的背景颜色,就做到KTV字母效果了。 核心的css属性: background-image:url()/*纯色的背景图,用来渲染文字颜色,因为文字是透明的。*/ background-repeat:no-repeat -webkit-background-clip:text -webkit-text-fill-color:transparent background-position:0 0 ↑改变他就可以了。 关于实现方式2的图示: