CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

CSS!重要なルール:いつ使用するか

!重要な ルールは、Webページのスタイルを上書きするために使用されます。正直なところ、すべきでない理由の例は他にもあります。 !importantルールと必要な理由を使用してください。それがどのように使用されるか、そしてなぜそれが控えめにのみ使用されるべきかについて議論しましょう。

ユーザーエージェントスタイルシートのオーバーライド

CSSを作成するときに、指定されたスタイルシートを上書きする必要がある場合があります。 BootstrapなどのCSSフレームワークを使用してプロジェクトを立ち上げて実行する場合は、フレームワークに組み込まれているスタイルをカスタマイズすることをお勧めします。

<!DOCTYPE html>
<html lang="en">
   <head>
       <meta charset="UTF-8" />
       <meta name="viewport" content="width=device-width, initial-scale=1.0" />
       <title>CSS Important Keyword: Overriding Bootstrap</title>
       <link
           rel="stylesheet"
           href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css"
           integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk"
           crossorigin="anonymous"
       />
       <style>
           .container {
               display: flex;
           }
           .nav {
               color: black;
               background-color: pink;
           }
       </style>
   </head>
   <body>
       <nav class="navbar navbar-expand-lg navbar-light bg-light">
           <a class="navbar-brand" href="#">Navbar</a>
           <button
               class="navbar-toggler"
               type="button"
               data-toggle="collapse"
               data-target="#navbarSupportedContent"
               aria-controls="navbarSupportedContent"
               aria-expanded="false"
               aria-label="Toggle navigation"
           >
               <span class="navbar-toggler-icon"></span>
           </button>
 
           <div class="collapse navbar-collapse" id="navbarSupportedContent">
               <ul class="navbar-nav mr-auto">
                   <li class="nav-item active">
                       <a class="nav-link" href="#"
                           >Home <span class="sr-only">(current)</span></a
                       >
                   </li>
                   <li class="nav-item">
                       <a class="nav-link" href="#">Link</a>
                   </li>
                   <li class="nav-item dropdown">
                       <a
                           class="nav-link dropdown-toggle"
                           href="#"
                           id="navbarDropdown"
                           role="button"
                           data-toggle="dropdown"
                           aria-haspopup="true"
                           aria-expanded="false"
                       >
                           Dropdown
                       </a>
                       <div
                           class="dropdown-menu"
                           aria-labelledby="navbarDropdown"
                       >
                           <a class="dropdown-item" href="#">Action</a>
                           <a class="dropdown-item" href="#">Another action</a>
                           <div class="dropdown-divider"></div>
                           <a class="dropdown-item" href="#"
                               >Something else here</a
                           >
                       </div>
                   </li>
                   <li class="nav-item">
                       <a
                           class="nav-link disabled"
                           href="#"
                           tabindex="-1"
                           aria-disabled="true"
                           >Disabled</a
                       >
                   </li>
               </ul>
               <form class="form-inline my-2 my-lg-0">
                   <input
                       class="form-control mr-sm-2"
                       type="search"
                       placeholder="Search"
                       aria-label="Search"
                   />
                   <button
                       class="btn btn-outline-success my-2 my-sm-0"
                       type="submit"
                   >
                       Search
                   </button>
               </form>
           </div>
       </nav>
       <div class="container">
           <div class="card" style="width: 18rem;">
               <div class="card-body">
                   <h5 class="card-title">Card title</h5>
                   <p class="card-text">
                       Some quick example text to build on the card title and
                       make up the bulk of the card's content.
                   </p>
                   <a href="#" class="btn btn-primary">Go somewhere</a>
               </div>
           </div>
       </div>
 
       <script
           src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
           integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
           crossorigin="anonymous"
       ></script>
       <script
           src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js"
           integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
           crossorigin="anonymous"
       ></script>
       <script
           src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"
           integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI"
           crossorigin="anonymous"
       ></script>
   </body>
</html>

上記のコードエディタで何が起こっているのかを理解することについてあまり心配する必要はありません。実行ボタンを押して、行うことを確認します。 について知る。クラスやIDがあるように見えるHTML、Bootstrapからのものである可能性があることを示すCSSスタイルシートへのリンク、そして<head> の独自のスタイルがあります。 適切にレンダリングされていないドキュメントの

.navbarbackground-color: pink;に言及しているセレクター 、

と入力します

'!重要'。色と!importantルールの間にスペースを入れてください。コードを再度実行します。ナビゲーションバーの背景色を変更しましたか?

これは、!importantルールの最初のユースケースです。 CSSフレームワークまたは他の場所からユーザーエージェントスタイルシートが与えられた場合、ルールを使用して、Bootstrapに付属するスタイルをオーバーライドできます。

インラインスタイルのオーバーライド

もう1つのユースケースは、要素のインラインスタイルをオーバーライドする必要がある場合です。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>CSS Important Keyword: Overriding Inline Styles</title>
   <style>
       .line-item:first-child{
           color: purple;
       }
       .line-item:last-child {
           color: crimson;
           font-size: xx-large;
           font-variant: normal;
       }
   </style>
</head>
<body>
   <h1>Doctor Who Characters</h1>
   <ul>
       <li class="line-item" style="color: rosybrown; font-size: large;">Rose Tyler</li>
       <li class="line-item">Jackie Tyler</li>
       <li class="line-item">Mickey</li>
       <li class="line-item" style="color:royalblue; font-size: larger; font-variant:small-caps;">The Doctor</li>
   </ul>
</body>
</html>

コードの本文にいくつかのインラインスタイルがあり、<style>でそれをオーバーライドするための潜在的なスタイルがあることに注意してください。 上記のコードエディタでタグを付けます。 CSSの!importantルールを使用して、インラインスタイルをオーバーライドします。

!importantルールは必ずしもベストプラクティスではなく、比較的慎重に使用する必要があることに注意してください。後で見つけにくいバグにつながる可能性があります。
!importantルールを使用する必要があると感じ、フレームワークを使用していない場合は、通常、セレクターを再編成して、見たいものをより適切にレンダリングできます。


  1. CSSの標準リンクスタイル

    要件に応じてリンクのスタイルを設定できます。リンクには、通常のテキストと区別できるスタイルを設定することをお勧めします。さまざまなリンク状態のデフォルトのリンクスタイルは次のとおりです- リンク状態 色 アクティブ #EE0000 フォーカス #5E9ED6またはWindowsとMacの場合は、同様の青い輪郭の色合い、 #F07746 Linuxのアウトライン、テキストの色は同じまま ホバー #0000EE リンク #0000EE 訪問済み #551A8B 注 −上記の色は、新しいバージョンのブラウザで変更される場合があります。適切な機能のために、疑似セレク

  2. CSSでアイコンバーを作成するにはどうすればよいですか?

    CSSでアイコンバーを作成するためのコードは次のとおりです- 例 <!DOCTYPE html> <html> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"&g