目次
CSS ハックとは
CSS内部ハック
选择器hack
HTML头部引用
书写顺序

CSSハック

Feb 10, 2017 pm 03:26 PM

私は以前、CSS ハックに対して非常に偏狭で偏見を持っていましたが、よく書かれたコードはこれらの「邪悪な方法」を使用すべきではないと感じていました。しかし、最近の製品リリースでの小さな問題が私を長い間悩ませてきました。最後に、情報を確認したところ、CSS が使用されていることがわかりました。このハックは簡単に解決しますが、魔法の IE に対処するにはこれらの鋭いツールを使用する必要があります。

CSS ハックとは

異なるブラウザー、さらには同じブラウザーの異なるバージョンでも CSS 解析の理解が異なり、生成されるページに一貫性のない影響が生じるため、異なるブラウザー用の CSS コードを記述することを CSS ハックと呼びます。

よく使用される CSS ハックは、CSS 内部ハック、セレクター ハック、HTML ヘッダー参照の 3 つです。最初のハックが最もよく使用されます。

CSS内部ハック

本格的なCSSは次のように書かれています

nbsp;html>
    
        <title>Test</title>
        <style>
            .test            {
                background-color:green;
            }
        </style>
    
    
        <p></p>
    
ログイン後にコピー


このようなコードは現在一般的に使用されているすべてのブラウザで簡単に使用でき、結果は次のようになります

CSS hack

しかしCSS3ではいくつかの一般的な書き方

/*Mozilla内核浏览器:firefox3.5+*/
  -moz-transform: rotate | scale | skew | translate ; /*Webkit内核浏览器:Safari and Chrome*/
  -webkit-transform: rotate | scale | skew | translate ; /*Opera*/
  -o-transform: rotate | scale | skew | translate ; /*IE9*/
  -ms-transform: rotate | scale | skew | translate ; /*W3C标准*/
  transform: rotate | scale | skew | translate ;
ログイン後にコピー


ではこのようなメソッドがよくありますが、コメントがないと一見、とんでもないことだと思うかもしれませんが、このようなコードは使いやすいです!この種のコードは非常に使いやすいですが、現在の CSS3 標準は統一されていないため、ブラウザごとに独自の表現方法があり、特定のブラウザのサポートを示すために先頭にいくつかのプレフィックスを追加する場合もあります。 CSS 内部ハックの基本原則はシンプルで理解しやすいものですが、不滅の IE6 とそのさまざまな奇妙な兄弟バージョンがあるため、実際の CSS ハックはそれをはるかに超えています。

CSS の内部ハック構文は、このセレクター {?property:value?;} のようなものです。 もちろん、この

*background-color:green;
ログイン後にコピー


も存在します。属性の前に「*」を追加すると、IE6 および 7 でのみ有効になります。他のバージョンの IE および最新のブラウザーは、この指示を無視します (特別な指示はありません。この記事のすべてのハックは、DOCTYPE を宣言するドキュメントの効果を参照しています)。

-background-color:green;
ログイン後にコピー


属性の前に「-」がありますが、これはIE6でのみ認識され、後ろにはいくつかのハックがあります

background-color:green!important;
ログイン後にコピー


属性の後に「!重要」を追加するこの方法値は IE6 でのみ認識され、他のバージョンは IE と最新のブラウザで認識でき、「+」と「」もあります

  IE6 IE7 IE8 IE9 IE10 现代浏览器
* CSSハック CSSハック        
+   CSSハック        
- CSSハック          
!important   CSSハック CSSハック CSSハック CSSハック CSSハック
\9 CSSハック CSSハック CSSハック CSSハック CSSハック  
\0     CSSハック CSSハック CSSハック  
\9\0       CSSハック CSSハック  

这样就清楚多了吧。如果只想给上面的test p在IE访问的时候加绿色背景,就可以这么写

background-color:green\9;
ログイン後にコピー


如果想IE6红色,IE7绿色,其它黄色(当然没人这么无聊)就可以这么写

background-color:green;
+background-color:green;
_background-color:green;
ログイン後にコピー


选择器hack

选择器hanck主要是针对IE浏览器,其实并不怎么常用,语法是这样的: selector{ sRules }

  IE6 IE7 IE8 IE9 IE10 现代浏览器
*html CSSハック          
*+html   CSSハック        
:root       CSSハック    

针对IE9的hack可以这么写

:root .test{
    background-color:green;
}
ログイン後にコピー


HTML头部引用

HTML头部引用就比较特殊了,类似于程序语句,只能使用在HTML文件里,而不能在CSS文件中使用,并且只有在IE浏览器下才能执行,这个代码在非IE浏览下非单不是执行该条件下的定义,而是当做注释视而不见。

<link><link><link>
ログイン後にコピー


lte:就是Less than or equal to的简写,也就是小于或等于的意思。

lt :就是Less than的简写,也就是小于的意思。

gte:就是Greater than or equal to的简写,也就是大于或等于的意思。

gt :就是Greater than的简写,也就是大于的意思。

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

书写顺序

看看,看看,这么多姿势,那么一个效果,好多种写法,什么顺序写才能保证各个浏览器都得到希望的效果呢?因为CSS只要是同一级别,出现重复属性设置,后出现的会覆盖前面出现的,所以在书写的时候一般把识别能力强的写前面,看个例子

_background-color:red;
background-color:green;
ログイン後にコピー


如果希望p在IE6上是红色,其它是绿色,上面的写法可不可以呢?试一下发现所有浏览器上都是绿色,因为在IE6解析的时候,第一句能够识别,背景设为红色,但是第二句所有浏览器都识别,IE6也不例外,背景颜色又被设为绿色,所以得反过来写

background-color:green;
_background-color:red;
ログイン後にコピー


总结出的规律就是:先一般,再特殊。有兴趣的同学可以试试试试下面CSS,看看和你想的效果是否一样

background-color:blue; /*所有浏览器*/background-color:red\9;/*所有的ie*/background-color:yellow\0; /* ie8+*/+background-color:pink; /*+ ie7*/
ログイン後にコピー

更多CSS hack 相关文章请关注PHP中文网!


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

それは&#039; Vueチームにそれを成し遂げてくれておめでとうございます。それは大規模な努力であり、長い時間がかかったことを知っています。すべての新しいドキュメントも同様です。

Redwood.jsと動物相を使用してイーサリアムアプリを構築します Redwood.jsと動物相を使用してイーサリアムアプリを構築します Mar 28, 2025 am 09:18 AM

最近のビットコインの価格が20k $ $ USDを超えており、最近30Kを破ったので、イーサリアムを作成するために深く掘り下げる価値があると思いました

ブラウザから有効なCSSプロパティ値を取得できますか? ブラウザから有効なCSSプロパティ値を取得できますか? Apr 02, 2025 pm 06:17 PM

私はこの非常に正当な質問で誰かに書いてもらいました。 Leaは、ブラウザから有効なCSSプロパティ自体を取得する方法についてブログを書いています。それはこのようなものです。

CI/CDで少し CI/CDで少し Apr 02, 2025 pm 06:21 PM

「ウェブサイト」は「モバイルアプリ」よりも適していると言いますが、Max Lynchからのこのフレーミングが好きです。

粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード 粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード Apr 03, 2025 am 10:30 AM

先日、Corey Ginnivanのウェブサイトから、この特に素敵なビットを見つけました。そこでは、スクロール中にカードのコレクションが互いに積み重ねられていました。

WordPressブロックエディターでのマークダウンとローカリゼーションを使用します WordPressブロックエディターでのマークダウンとローカリゼーションを使用します Apr 02, 2025 am 04:27 AM

WordPressエディターでユーザーに直接ドキュメントを表示する必要がある場合、それを行うための最良の方法は何ですか?

レスポンシブデザインのブラウザを比較します レスポンシブデザインのブラウザを比較します Apr 02, 2025 pm 06:25 PM

これらのデスクトップアプリがいくつかあり、目標があなたのサイトをさまざまな次元ですべて同時に表示しています。たとえば、書くことができます

フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? Apr 05, 2025 pm 05:51 PM

フレックスレイアウトの紫色のスラッシュ領域に関する質問フレックスレイアウトを使用すると、開発者ツールなどの混乱する現象に遭遇する可能性があります(D ...

See all articles