目次
成都王府井百货
ホームページ ウェブフロントエンド CSSチュートリアル CSS でよく混同されがちな属性と値の違い (1)

CSS でよく混同されがちな属性と値の違い (1)

Oct 14, 2016 pm 02:56 PM

CSS には多くの属性があり、各属性には多くの値の組み合わせがあります。 CSS は、さまざまな属性を組み合わせることで、さまざまなスタイルを生成することもできます。以下は、作業でよく混同される属性と値の要約です:

1. Line-height (行の高さ) 単位の有無の違い:

行の高さは継承できることがわかっています。親要素の line-height 値に単位がない場合、子要素は独自のフォント サイズを使用して行の高さを計算します (子要素の line-height = 親要素の line-height の値 *子要素のフォント サイズ)。親要素の行の高さの値に単位がある場合、親要素はまず自身のフォントサイズに基づいて行の高さを計算し(絶対単位がpxの場合は計算不要)、子要素はそれを継承します(行の高さ)。子要素の行の高さ = 親要素の行の高さ)。

(1). 親要素の行の高さの値に単位がある場合:

<div>
    <p>当哈罗德站在斑马线前按下行人按钮时——如果一直是她(莫琳,哈罗德的妻子)在做哈罗德该做的事,那么——“我是谁?”他就这样走过了邮局,连停都没有停下。原本很短的一段路由于内心的呼唤便再也无法停住脚步。</p>
    <p>一路上我记起了很多东西,很多我都没有意识到自己忘了的回忆,有戴维的,还有你和我的。我还记起了我的母亲,有些回忆很不容易,但大部分都很美。我很害怕,我怕有一天,或许很快,我就会把他们弄丢,这一次永远都找不回来了。”哈罗德泪流满面.</p>
</div>
ログイン後にコピー
body { background-color: #efefef; }
div {
    font-size: 12px;
    line-height: 1.5em;
}
p { font-size: 22px; }
ログイン後にコピー

上記と同様: 親要素のフォントサイズが 12px の場合、行の高さは 1.5em、子要素のフォントサイズはが 22px の場合、表示効果は次のとおりです。

CSS でよく混同されがちな属性と値の違い (1)

上の例では、親要素 div 1.5em = 12 * 1.5 = 18px の行の高さを継承しているため、p の行の高さは 18px です。自身のフォントサイズが22pxなので、絞られた効果になります。さらに、テキストが占める高さは font-size と直接の関係はありませんが、テキストが占める幅は font-size の値と同じです。

(2). 親要素の行の高さの値に単位がない場合:

<div>
    <p>你以为走路是世界上最简单的事呢?只不过是把一只脚放到另一只脚前面。但我一直很惊讶这些原本是很本能的事情实际上做起来有多困难。而吃,吃也是一样的。说话也是。还有爱。这些东西都可以很难。</p>
    <p>我们大家都以为哈罗德徒步是因为很多年前他与奎妮有一段罗曼史。但那不是事实。哈罗德走这条路,是因为奎妮救了他,而他从来没有说过一句谢谢。</p>
</div>
ログイン後にコピー
body { background-color: #efefef; }
div {
    font-size: 12px;
    line-height: 1.5;
}
p { font-size: 22px; }
ログイン後にコピー

上記と同様: 親要素のフォントサイズが12pxの場合、行の高さは1.5、子要素のフォントサイズはが 22px の場合、表示効果は次のとおりです。

CSS でよく混同されがちな属性と値の違い (1)

上の例では、p の行の高さは 33px です。これは、親要素 div の行の高さ 1.5 を継承し、独自のフォント サイズが 22px であるためです。したがって、独自の行の高さの値は 22 * 1.5 = 33px です。最初のケースの圧縮効果が表示されます。

2. display (表示モード) の値は inline-block、table、flex です。 使用環境と違い:

(1). 要素の表示モードの場合。は、display: block ; ですが、幅を定義しない場合と、幅を width: 100%; または width: auto; として定義する場合の効果は同じです。これは、ブロックレベルの要素が親要素の幅の値を継承するためです。 100% (つまり、親要素と同じ幅) まで) は、独自の幅を定義します。ただし、実際のプロジェクトでは、幅を 100% にする必要はなく、要素の幅、高さ (またはパディング) などの属性も設定したい場合があります。このとき、display: inline-block; を使用する必要があります。

dom は次のようになります:

<div class="text">
    <h3 id="成都王府井百货">成都王府井百货</h3>
    <p>成都王府井购物中心是北京王府井百货(集团)斥资4.5亿元打造的第一个购物中心项目。购物中心集购物、餐饮、娱乐、服务、文化、教育等多项功能于一身,建筑面积约10万平方米,共计5层营业。</p>
    <div><a href="#" title="查看详情" class="look-details">查看详情</a></div>
</div>
ログイン後にコピー
.text > div {
    margin-top: 1.2rem;
    text-align: center;
}
.text a.look-details {
    display: inline-block;
    padding: .5rem 1rem;
    font-size: .8rem;
    color: #fff;
    background-color: #e04728;
}
ログイン後にコピー

上記の詳細表示リンクでは、display: inline-block; と定義します。幅と高さを設定せずに、高さと幅のアイデアを得ました。表示効果は次のとおりです。

CSS でよく混同されがちな属性と値の違い (1) そして、その親要素に text-align: center; を設定すると、水平方向の中央揃えの目的を達成できます。

要素を display: inline-block; に設定すると、display: block; と display: inline; の両方の効果が得られ、高さを設定し、幅が 100% になるのを避けることができます。

拡張子:

親要素 text-align: center; 子要素 display: inline-block; 通常、ニュース一覧ページなどのページネーション効果に使用されます。

<ul class="pagination">
    <!-- 当前页面时,给 li 添加 active 类 -->
    <li><a href="#" aria-label="Previous">&laquo;</a></li>
    <li class="active"><a href="#">1</a></li>
    <li><a href="#">2</a></li>
    <li><a href="#">3</a></li>
    <li><a href="#">4</a></li>
    <li><a href="#">5</a></li>
    <li><a href="#" aria-label="Next">&raquo;</a></li>
</ul>
ログイン後にコピー
.pagination {
    display: inline-block;
    text-align: center;
}
.pagination:before,
.pagination:after {
    display: table;
    content: "";
}
.pagination:after { clear: both; }
.pagination {
    display: inline-block;
    text-align: center;
}
.pagination > li {            
    float: left;
    display: inline-block;
}
.pagination > li > a {
    display: block;
    margin-left: -1px; /*消除两个 a 在一起时引起的双倍左外边距*/
    padding: 6px 12px;
    color: #337ab7;
    text-decoration: none;
    background-color: #fff;
    border: 1px solid #ddd;
}
.pagination > li:first-child > a {
    margin-left: 0; /*第一个 a 不需要消除左外边距*/
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}
.pagination > li:last-child > a {
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}
.pagination > li > a:hover,
.pagination > li > a:focus {
    z-index: 2;
    color: #23527c;
    background-color: #eee;
    border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > a:hover,
.pagination > .active > a:focus {
    z-index: 3;
    color: #fff;
    cursor: default; /*当前这一页,让鼠标悬浮在 a 元素上时,显示为默认光标样式,给人感觉不能点击的效果*/
    background-color: #337ab7;
    border-color: #337ab7;
}
ログイン後にコピー

CSS でよく混同されがちな属性と値の違い (1) (2)。display: table;

最初のケースの拡張では、display: table; を使用すると、この要素はブロックレベルのテーブルとして表示されます。

まで)、表の前後に改行があります。

変動要件をクリアするときによく使用されます。要素がその float をクリアする必要がある理由は、その要素には高さが定義されていないが、その子要素には float があるためです。

上記の例の拡張では、ul.pagenation で高さが定義されておらず、子要素に float があるため、float をクリアする必要があります。 float をクリアする方法は次のとおりです。

.parent-box:before,
.parent-box:after {
    display: table;
    content: ""; /*伪元素 before 和 after 的样式里必须添加 content 属性才会起作用*/
}
.parent-box:after { clear: both; }
ログイン後にコピー

float をクリアするこの方法は、ie8 ではサポートされていません。 ie6 ~ ie8 をサポートする必要がある場合は、次のより複雑なスタイルを使用する必要があります (この書き方は一時的に理解できません):

.clearfix::after {
    clear: both;
    display: block;
    content: ” ”;
    height: 0;
    line-height: 0;
    visibility: hidden;
}
.clearfix { zoom: 1; }
ログイン後にコピー

(3)。display: flex;

2009 年に、W3C は新しいソリューションを提案しました。 ---Flex レイアウトは、さまざまなページ レイアウトを簡単、完全、レスポンシブに実現できます。現在、この機能はすべてのブラウザでサポートされているため、この機能を安全に使用できるようになりました。

CSS でよく混同されがちな属性と値の違い (1)初心者向けチュートリアル http://www.runoob.com/w3cnote/flex-grammar.html で詳しく説明されています。

コンテンツはたくさんありますが、通常は 3 つの属性のみを使用します。これらの 3 つの属性はすべて親要素、display: flex; で使用されます。子要素のモードは柔軟なレイアウトで、align-items: center; は子要素を垂直方向の中央に配置し、justify-content: center; は子要素を水平方向の中央に配置します。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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