电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

CSS hack用法案例詳解

瀏覽:408日期:2022-06-03 11:29:26

之前一直很狹隘的對(duì)CSS hack持有偏見(jiàn),覺(jué)得寫得規(guī)范的代碼不應(yīng)該使用這些“邪門歪道”,可最近產(chǎn)品發(fā)布一個(gè)小問(wèn)題卻讓我頭疼了很久,最后查了一下資料,竟然使用CSS hack輕松解決了,不得不服啊,對(duì)付神奇的IE就得使用這些利器。

什么是CSS hack

由于不同的瀏覽器,甚至同一瀏覽器的不同版本對(duì)CSS的解析認(rèn)識(shí)不一樣,導(dǎo)致生成的頁(yè)面效果不一致,寫出針對(duì)不同瀏覽器CSS code就稱為CSS hack。

常用的CSS hack 有三種方式,CSS 內(nèi)部hack、選擇器hack、HTML 頭部引用,其中第一種最常用。

CSS 內(nèi)部hack

正經(jīng)的CSS是這么寫的

<!DOCTYPE html><html>    <head><title>Test</title><style type="text/css" >    .test    {background-color:green;    }</style>    </head>    <body><div></div>    </body><html>

這樣的代碼對(duì)于所有當(dāng)前常用的瀏覽器都是好使的,結(jié)果應(yīng)該是這樣子的

但是在CSS3中常見(jiàn)一些這樣的寫法

/*Mozilla內(nèi)核瀏覽器:firefox3.5+*/  -moz-transform: rotate | scale | skew | translate ; /*Webkit內(nèi)核瀏覽器:Safari and Chrome*/  -webkit-transform: rotate | scale | skew | translate ; /*Opera*/  -o-transform: rotate | scale | skew | translate ; /*IE9*/  -ms-transform: rotate | scale | skew | translate ; /*W3C標(biāo)準(zhǔn)*/  transform: rotate | scale | skew | translate ;

如果沒(méi)有注釋乍一看還以為逆天了,這樣的代碼都好使!這樣的代碼確實(shí)好使,CSS3目前標(biāo)準(zhǔn)還沒(méi)有統(tǒng)一,各個(gè)瀏覽器都有自己的表現(xiàn)方式,甚至有的實(shí)現(xiàn),有的未實(shí)現(xiàn),在前面加一些前綴以表示支持某個(gè)特定瀏覽器,這也是CSS 內(nèi)部hack的基本原理,向上面這些簡(jiǎn)單易懂,但是真正的CSS hack 遠(yuǎn)遠(yuǎn)不止于此,因?yàn)橛胁凰赖腎E6及其各種奇葩的兄弟版本。

CSS 內(nèi)部hack 語(yǔ)法是這樣的 selector{<hack>?property:value<hack>?;} ,上面代碼所示的是在屬性名稱之前的hack,當(dāng)然還有這樣的

*background-color:green;

屬性前面加個(gè)“*”這樣的寫法只會(huì)對(duì)IE6、7生效,其它版本IE及現(xiàn)代瀏覽器會(huì)忽略這條指令(沒(méi)有特殊說(shuō)明,本文所有hack都是指在聲明了DOCTYPE的文檔的效果)

-background-color:green;

屬性前面有個(gè)“-”這樣的只有IE6識(shí)別,還有些在后面的hack

background-color:green!important;

這樣在屬性值后面添加“!important”的寫法只有IE6不能識(shí)別,其它版本IE及現(xiàn)代瀏覽器都可以識(shí)別,還有“+”、“\0”、”\9” 等,亂七八糟好煩,畫個(gè)表

這樣就清楚多了吧。如果只想給上面的test DIV在IE訪問(wèn)的時(shí)候加綠色背景,就可以這么寫

background-color:green\9;

如果想IE6紅色,IE7綠色,其它黃色(當(dāng)然沒(méi)人這么無(wú)聊)就可以這么寫

background-color:green; +background-color:green; _background-color:green;

選擇器hack

選擇器hanck主要是針對(duì)IE瀏覽器,其實(shí)并不怎么常用,語(yǔ)法是這樣的:<hack> selector{ sRules }

:root .test{    background-color:green;}

HTML頭部引用

HTML頭部引用就比較特殊了,類似于程序語(yǔ)句,只能使用在HTML文件里,而不能在CSS文件中使用,并且只有在IE瀏覽器下才能執(zhí)行,這個(gè)代碼在非IE瀏覽下非單不是執(zhí)行該條件下的定義,而是當(dāng)做注釋視而不見(jiàn)。

<!– 默認(rèn)先調(diào)用css.css樣式表 –><link rel="stylesheet" type="text/css" href="css.css" rel="external nofollow"  /><!–[if IE 7]><!– 如果IE瀏覽器版是7,調(diào)用ie7.css樣式表 –><link rel="stylesheet" type="text/css" href="ie7.css" rel="external nofollow"  /><![endif]–><!–[if lte IE 6]><!– 如果IE瀏覽器版本小于等于6,調(diào)用ie.css樣式表 –><link rel="stylesheet" type="text/css" href="ie.css" rel="external nofollow"  /><![endif]–>

lte:就是Less than or equal to的簡(jiǎn)寫,也就是小于或等于的意思。

lt :就是Less than的簡(jiǎn)寫,也就是小于的意思。

gte:就是Greater than or equal to的簡(jiǎn)寫,也就是大于或等于的意思。

gt :就是Greater than的簡(jiǎn)寫,也就是大于的意思。

! :就是不等于的意思,跟javascript里的不等于判斷符相同。

書寫順序

看看,看看,這么多姿勢(shì),那么一個(gè)效果,好多種寫法,什么順序?qū)懖拍鼙WC各個(gè)瀏覽器都得到希望的效果呢?因?yàn)镃SS只要是同一級(jí)別,出現(xiàn)重復(fù)屬性設(shè)置,后出現(xiàn)的會(huì)覆蓋前面出現(xiàn)的,所以在書寫的時(shí)候一般把識(shí)別能力強(qiáng)的寫前面,看個(gè)例子

_background-color:red;background-color:green;

如果希望DIV在IE6上是紅色,其它是綠色,上面的寫法可不可以呢?試一下發(fā)現(xiàn)所有瀏覽器上都是綠色,因?yàn)樵贗E6解析的時(shí)候,第一句能夠識(shí)別,背景設(shè)為紅色,但是第二句所有瀏覽器都識(shí)別,IE6也不例外,背景顏色又被設(shè)為綠色,所以得反過(guò)來(lái)寫

background-color:green;_background-color:red;

總結(jié)出的規(guī)律就是:先一般,再特殊。有興趣的同學(xué)可以試試試試下面CSS,看看和你想的效果是否一樣

background-color:blue; /*所有瀏覽器*/background-color:red\9;/*所有的ie*/background-color:yellow\0; /* ie8+*/+background-color:pink; /*+ ie7*/

到此這篇關(guān)于CSS hack用法案例詳解的文章就介紹到這了,更多相關(guān)CSS hack用法內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: CSS HTML
相關(guān)文章:
主站蜘蛛池模板: 吹田功率计-长创耐压测试仪-深圳市新朗普电子科技有限公司 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 盘煤仪,盘料仪,盘点仪,堆料测量仪,便携式激光盘煤仪-中科航宇(北京)自动化工程技术有限公司 | 数控专用机床,专用机床,自动线,组合机床,动力头,自动化加工生产线,江苏海鑫机床有限公司 | 滁州高低温冲击试验箱厂家_安徽高低温试验箱价格|安徽希尔伯特 | 电子厂招聘_工厂招聘_普工招聘_小时工招聘信息平台-众立方招工网 | 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 水冷散热器_水冷电子散热器_大功率散热器_水冷板散热器厂家-河源市恒光辉散热器有限公司 | 烟气在线监测系统_烟气在线监测仪_扬尘检测仪_空气质量监测站「山东风途物联网」 | TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司 | 安德建奇火花机-阿奇夏米尔慢走丝|高维|发那科-北京杰森柏汇 | 合肥网带炉_安徽箱式炉_钟罩炉-合肥品炙装备科技有限公司 | 菲希尔FISCHER测厚仪-铁素体检测仪-上海吉馨实业发展有限公司 | 熔体泵_熔体出料泵_高温熔体泵-郑州海科熔体泵有限公司 | 重庆小面培训_重庆小面技术培训学习班哪家好【终身免费复学】 | 厂房出租_厂房出售_产业园区招商_工业地产&nbsp;-&nbsp;中工招商网 | 新疆十佳旅行社_新疆旅游报价_新疆自驾跟团游-新疆中西部国际旅行社 | 耙式干燥机_真空耙式干燥机厂家-无锡鹏茂化工装备有限公司 | 郑州水质检测中心_井水检测_河南废气检测_河南中环嘉创检测 | 办公室装修_上海办公室设计装修_时尚办公新主张-后街印象 | 斗式提升机_链式斗提机_带式斗提机厂家无锡市鸿诚输送机械有限公司 | 定制防伪标签_防伪标签印刷_防伪标签厂家-510品保防伪网 | 流程管理|流程管理软件|企业流程管理|微宏科技-AlphaFlow_流程管理系统软件服务商 | 双工位钻铣攻牙机-转换工作台钻攻中心-钻铣攻牙机一体机-浙江利硕自动化设备有限公司 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | UV固化机_UVLED光固化机_UV干燥机生产厂家-上海冠顶公司专业生产UV固化机设备 | 拉曼光谱仪_便携式|激光|显微共焦拉曼光谱仪-北京卓立汉光仪器有限公司 | LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | 照相馆预约系统,微信公众号摄影门店系统,影楼管理软件-盟百网络 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 淘趣英语网 - 在线英语学习,零基础英语学习网站 | 艺术生文化课培训|艺术生文化课辅导冲刺-济南启迪学校 | ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 爱德华真空泵油/罗茨泵维修,爱发科-比其尔产品供应东莞/杭州/上海等全国各地 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 考勤系统_人事考勤管理系统_本地部署BS考勤系统_考勤软件_天时考勤管理专家 | 粉末冶金-粉末冶金齿轮-粉末冶金零件厂家-东莞市正朗精密金属零件有限公司 | 贝朗斯动力商城(BRCPOWER.COM) - 买叉车蓄电池上贝朗斯商城,价格更超值,品质有保障! | 自动售货机_无人售货机_专业的自动售货机运营商_免费投放售货机-广州富宏主官网 |