ホームページ >ウェブフロントエンド >CSSチュートリアル >CSS ユニット、値、スタイリングのヒントを共有

CSS ユニット、値、スタイリングのヒントを共有

高洛峰
高洛峰オリジナル
2017-03-09 10:40:451433ブラウズ

1. 単位と値


1.1 色の値

フォントの色 (color)、背景の色 (background-color)、境界線の色 (border) などを含む、Web ページの色の設定は非常に重要です。 .、設定 カラーには多くの方法があります:

1. 英語コマンド color

この設定方法は前のセクションでよく使用されます:

p{color:red;}
2. RGB カラー

これも同じですas photoshop の RGB カラーは一貫しており、R (赤)、G (緑)、B (青) の 3 つの色の比率で一致しています。

p{color:rgb(133,45,200);}
各項目の値は、0〜255の整数、または0%〜100%の割合です。例:

p{color:rgb(20%,33%,25%);}
3. 16進数カラー

このカラー設定方法は現在ではより一般的に使用されている方法であり、その原理は実際にはRGB設定です。ただし、各項目の値は 0 ~ 255 から 16 進数の 00 ~ ff に変更されています。

p{color:#00ffff;}

カラーテーブル:

CSS ユニット、値、スタイリングのヒントを共有
1.2 長さの値

長さの単位をまとめると、現在、px(ピクセル)、em、%がよく使われています。実際、これら 3 つの単位はすべて相対的な単位です。

1.ピクセル

なぜピクセルは相対単位なのでしょうか?ピクセルはディスプレイ上の小さなドットを指すためです (CSS 仕様では「90 ピクセル = 1 インチ」と想定されています)。実際の状況では、ブラウザーはディスプレイの実際のピクセル値を使用します。現在、ほとんどのデザイナーはピクセル (px) を単位として使用する傾向があります。

2. em

この要素の指定されたフォントの font-size 値です。要素の font-size が 14px の場合、1em = 14px、font-size が 18px の場合、1em = 18px となります。 。以下のコード:

p{font-size:12px;text-indent:2em;}
上記のコードは、段落の最初の行のインデントを 24px (つまり、2 つのフォント サイズ間の距離) で実現できます。 。

以下の特殊なケースに注意してください:

ただし、font-size の単位が em に設定されている場合、このときの計算基準は p の親要素の font-size に基づきます。次のコード:

html:

この example を例として取り上げます。



css:

p{font-size:14px}
span{font-size:0.8em;}
結果のフォント「例」のスパンのフォントサイズは 11.2px (14 * 0.8 = 11.2)ピクセル)。

3. パーセンテージ

p{font-size:12px;line-height:130%}

行の高さ(行間)をフォントの130%(12 * 1.3 = 15.6px)に設定します。

2. スタイル設定スキル

2.1 水平方向のセンタリング - インライン要素

実際の仕事では、見た目を美しくするために水平方向のセンタリングを設定する必要があるシナリオによく遭遇します。通常は水平方向に中央に表示されます。

ここでは、インライン要素とブロック要素の 2 つの異なる状況があります。ブロック要素は、固定幅のブロック要素と可変幅のブロック要素に分割されます。今日はまず、下向きの要素を水平方向に中央揃えする方法について学びます。

設定した要素がtextやpictureなどのインライン要素の場合、親要素にtext-align:centerを設定することで水平方向のセンタリングを実現します。 (親要素と子要素:以下のHTMLコードのように、pは「親コンテナ内で横に中央揃えで表示したい」というテキストの親要素です。逆に、このテキストはpの子要素です)以下のコード:

html コード:

<body>
  <p class="txtCenter">我想要在父容器中水平居中显示。</p>
</body>
css代码:   

<style>
  .txtCenter{   
    text-align:center;   
  }   
</style>


2.2 固定幅ブロックのセンタリング

設定する要素がブロック要素の場合、text-align: center を使用しても機能しません。現時点では、固定幅のブロック要素と可変幅のブロック要素の 2 つの状況があります。

このセクションでは、まず固定幅のブロック要素について説明します。 (固定幅ブロック要素:ブロック要素の幅は固定値です。)

固定幅とブロックの2つの条件を満たす要素は、「左右のマージン」の値を「自動」に設定することで中央揃えにすることができます。 p ブロック要素を水平方向に中央揃えに設定する例を見てみましょう:

html コード:

<span style="font-family: 楷体; font-size: 14pt;"><body>
  <p>我是定宽块状元素,哈哈,我要水平居中显示。</p>
</body>
css代码:   

<style>
p{   
    border:1px solid red;/*为了显示居中效果明显为 p 设置了边框*/   

    width:200px;/*定宽*/   
    margin:20px auto;/* margin-left 与 margin-right 设置为 auto */   
}   

</style></span>

也可以写成:

margin-left:auto;
margin-right:auto;
注意:元素的“上下 margin” 是可以随意设置的。

 2.3 不定宽

  在实际工作中我们会遇到需要为“不定宽度的块状元素”设置居中,比如网页上的分页导航,因为分页的数量是不确定的,所以我们不能通过设置宽度来限制它的弹性。(不定宽块状元素:块状元素的宽度width不固定。)

  不定宽度的块状元素有三种方法居中(这三种方法目前使用的都很多):

加入 table 标签
设置 display: inline 方法:与第一种类似,显示类型设为 行内元素,进行不定宽元素的属性设置
设置 position:relative 和 left:50%:利用 相对定位 的方式,将元素向左偏移 50% ,即达到居中的目的
  这一小节我们来讲一下第一种方法:

  为什么选择方法一加入table标签? 是利用table标签的长度自适应性---即不定义其长度也不默认父元素body的长度(table其长度根据其内文本长度决定),因此可以看做一个定宽度块元素,然后再利用定宽度块状居中的margin的方法,使其水平居中。

  第一步:为需要设置的居中的元素外面加入一个 table 标签 ( 包括

、、 )。

  第二步:为这个 table 设置“左右 margin 居中”(这个和定宽块状元素的方法一样)。

  举例如下:

  html代码:
<span style="font-family: 楷体; font-size: 14pt;"><p>
 <table>
  <tbody>
    <tr><td>
    <ul>
        <li>我是第一行文本</li>
        <li>我是第二行文本</li>
        <li>我是第三行文本</li>
    </ul>
    </td></tr>
  </tbody>
 </table>
</p>
css代码:   

<style>
table{   
    border:1px solid;   
    margin:0 auto;   
}   
</style></span><span style="font-family: 楷体; font-size: 14pt;"> </span>

除了上一节讲到的插入table标签,可以使不定宽块状元素水平居中之外,本节介绍第2种实现这种效果的方法,改变元素的display类型为行内元素,利用其属性直接设置。

第二种方法:改变块级元素的 display 为 inline 类型(设置为 行内元素 显示),然后使用 text-align:center 来实现居中效果。如下例子:

html代码:

<body>
<p class="container">
    <ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
</p>
</body>
css代码:   

<style>
.container{   
    text-align:center;   
}   
/* margin:0;padding:0(消除文本与p边框之间的间隙)*/   
.container ul{   
    list-style:none;   
    margin:0;   
    padding:0;   
    display:inline;   
}   
/* margin-right:8px(设置li文本之间的间隔)*/   
.container li{   
    margin-right:8px;   
    display:inline;   
}   
</style>

这种方法相比第一种方法的优势是不用增加无语义标签,但也存在着一些问题:它将块状元素的 display 类型改为 inline,变成了行内元素,所以少了一些功能,比如设定长度值。

  除了前两节讲到的插入table标签,以及改变元素的display类型,可以使不定宽块状元素水平居中之外,本节介绍第3种实现这种效果的方法,设置浮动和相对定位来实现。

方法三:通过给父元素设置 float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left: -50% 来实现水平居中。

我们可以这样理解:假想ul层的父层(即下面例子中的p层)中间有条平分线将ul层的父层(p层)平均分为两份,ul层的css代码是将ul层的最左端与ul层的父层(p层)的平分线对齐;而li层的css代码则是将li层的平分线与ul层的最左端(也是p层的平分线)对齐,从而实现li层的居中。

代码如下:

<body>
<p class="container">
    <ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
</p>
</body>
css代码:   

<style>
.container{   
    float:left;   
    position:relative;   
    left:50%   
}   

.container ul{   
    list-style:none;   
    margin:0;   
    padding:0;   

    position:relative;   
    left:-50%;   
}   
.container li{float:left;display:inline;margin-right:8px;}   
</style>

这三种方法使用得都非常广泛,各有优缺点,具体选用哪种方法,可以视具体情况而定。

以上がCSS ユニット、値、スタイリングのヒントを共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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