CSSを駆使ã—ã¦ã€Œåœ°ç„ã®ãƒŸã‚µãƒ¯ã€é¢¨ã®ã‚­ãƒ£ãƒ©ã‚¯ã‚¿ãƒ¼ã‚’æã„ã¦ã¿ã¾ã—ãŸã€‚

CSS3ã®ãƒŸã‚µãƒ¯

jsdo.itã§å…¬é–‹ã—ã¦ã„るコードã®100番目ã¨ã„ã†äº‹ã§ã€ã¡ã‚‡ã£ã¨å‡ã£ãŸã‚‚ã®ã‚’作ã‚ã†ã¨æ€ã£ãŸã®ãŒãã£ã‹ã‘ã§ã™ã€‚

完全ã«HTML+CSSã ã‘ã§åœ°ç„ã®ãƒŸã‚µãƒ¯é¢¨ã®çµµå›³ã‚’æã„ã¦ã¿ã¾ã—ãŸã€‚

コードã¯jsdo.itã®ã‚µã‚¤ãƒˆã§å…¬é–‹ã—ã¦ã‚りã¾ã™ã€‚よã‚ã—ã‘れã°ã”覧ãã ã•ã„。(実物ã®å®Ÿè¡Œã‚µãƒ³ãƒ—ルもã“ã¡ã‚‰ã§ã™ã€‚)

CSS3ã®ãƒŸã‚µãƒ¯

ãƒã‚¤ãƒ³ãƒˆ

以下ã®CSS3ã®æŒ‡å®šãŒãƒã‚¤ãƒ³ãƒˆã§ã™ã€‚

  • border-radius
  • transform
  • :before, :after

曲線をæã

ã¾ãšã¯ç·šã®æ›¸ã方を見ã¦ã‚†ãã¾ã—ょã†ã€‚ç·šã¯å…¨ã¦ã€ä½•ã®å¤‰å“²ã‚‚ãªã„borderを使ã£ã¦æã„ã¦ã„ã¾ã™ã€‚

/* 四角 */
#square {
  border: solid 3px #999;
}

ã“れをborder-radiusを使ã£ã¦æ›²ç·šã«ã—ã¦ã„ã‚‹ã‚ã‘ã§ã™ã€‚(-moz-ã®ã‚ˆã†ãªãƒ™ãƒ³ã‚¿ãƒ¼ãƒ—レフィックスã¯çœç•¥ã—ã¾ã™ã€‚ä»¥ä¸‹åŒæ§˜ã€‚)

/* 角丸 */
#curve {
  border: solid 3px #999;
  border-radius: 20px;
}

ã“ã®ã‚ˆã†ã«ã—ã¦ã®å¾„を決ã‚られるã‚ã‘ã§ã™ãŒã€å®Ÿã¯ã“れ真円ã ã‘ã§ãªã楕円を作る事もã§ãã‚‹ã‚“ã§ã™ã‚ˆï¼

楕円ã®å ´åˆã¯æ°´å¹³æ–¹å‘ã®å¾„ã¨åž‚ç›´æ–¹å‘ã®å¾„をスラッシュã§åŒºåˆ‡ã£ã¦è¨˜è¿°ã—ã¾ã™ã€‚(詳細後述)

/* 楕円 */
#ellipse {
  border: solid 3px #999;
  border-radius: 50px / 20px;
}

ã¾ãŸå€¤ã¯å››ã¤ä¸¦ã¹ã‚‹äº‹ã§ã€å·¦ä¸Šã‹ã‚‰æ™‚計回りã«ã€åˆ¥ã€…ã«æŒ‡å®šã™ã‚‹äº‹ãŒã§ãã¾ã™ã€‚背景色ãªã©è«¸ã€…ã®æŒ‡å®šã‚‚組ã¿åˆã‚ã›ã‚‹ã¨ã€é¡”ã®è¼ªéƒ­ã®å‡ºæ¥ä¸ŠãŒã‚Šã§ã™ã€‚

/* 輪郭 */
#rinkaku {
  background-color: rgb(255, 240, 232);
  border-color: #666;
  border-style: solid;
  border-width: 2px;
  border-radius: 90px 90px 90px 90px / 90px 90px 150px150px;
  height: 250px;
  width: 180px;
}

楕円ã«ã¤ã„ã¦

真円ã¯åŠå¾„ãŒã²ã¨ã¤ã§ã™ã€‚対ã—ã¦æ¥•å††ã¯æ°´å¹³æ–¹å‘ã®åŠå¾„ã¨åž‚ç›´æ–¹å‘ã®åŠå¾„ã¨ã€äºŒç¨®é¡žã‚る事ã«ãªã‚Šã¾ã™ã€‚

ã“れã«ã¤ã„ã¦HTMLクイックリファレンスã«éžå¸¸ã«åˆ†ã‹ã‚Šã‚„ã™ã図示ã•れã¦ã„ã¾ã—ãŸã€‚是éžã”覧ãã ã•ã„ã¾ã›ã€‚

border-radius …… 角丸をã¾ã¨ã‚ã¦æŒ‡å®šã™ã‚‹

微調整

ã“ã‚Œã§æ›²ç·šã‚’æã‘ã¾ã—ãŸã€‚ã§ã‚‚ãªã‚“ã ã‹é•ã†ãªãƒ¼â€¦â€¦ãã‚“ãªã¨ãã¯ã€transformã®å‡ºç•ªã§ã™ã€‚

transformã¯ãã®åã®é€šã‚Šã€è¦ç´ ã‚’変形ã•ã›ã‚‹ãƒ—ロパティã§ã™ã€‚以下ã®ã‚ˆã†ãªæ©Ÿèƒ½ã‚’æŒã¡ã¾ã™ã€‚

  • 移動
  • 回転
  • 傾斜

今回ã¯ã“ã®ã†ã¡å‚¾æ–œã‚’利用ã—ã¾ã™ã€‚平行四辺形ã«å¤‰å½¢ã•ã›ã‚‹æ©Ÿèƒ½ã§ã™ã€‚

傾斜ã¯skew()ã¨ã„ã†é–¢æ•°ã‚’使ã„ã¾ã™ã€‚プロパティã®å€¤ã¨ã—ã¦è¨­å®šã—ã€å‚¾ã‘る角度を指定ã—ã¾ã™ã€‚

/* ミサワ?ãªè¼ªéƒ­ */
#misawa {
  background-color: rgb(255, 240, 232);
  border-color: #666;
  border-style: solid;
  border-width: 2px;
  border-radius: 90px 90px 90px 90px / 90px 90px 150px 150px;
  height: 250px;
  transform: skew(-5deg);
  width: 180px;
}

degã¯ä¸€èˆ¬ã«è¨€ã†ã¨ã“ã‚ã®ã€Œåº¦ã€ã§ã™ã€‚(360度ã§ä¸€å›žè»¢ã«ãªã‚Šã¾ã™ã€‚)

ã‚‚ã†ã²ã¨ã¤ã€å›žè»¢rotate()も眉ã®ã¨ã“ã‚ã§ä½¿ã„ã¾ã—ãŸã€‚ã“ã®æ©Ÿèƒ½ã¯èª¬æ˜Žã—ãªãã¦ã‚‚想åƒä»˜ãã¾ã™ã‚ˆã­ã€‚

自動的ã«è¦ç´ ã‚’追加

最後ã«ã€ãƒ—ロパティã§ã¯ãªãセレクターã§ã™ã€‚:beforeã¨:afterã¨ã„ã†ã‚‚ã®ãŒã‚りã¾ã™ã€‚(劇的ï¼ï¼‰

ã“れã¯ç–‘ä¼¼è¦ç´ ã¨è¨€ã†ã‚‚ã®ã§ã™ã€‚:hover疑似クラスãªã‚“ã‹ã®ä»²é–“ã§ã™ã€‚

contentプロパティã¨ä½µç”¨ã—ã¦ã€æŒ‡å®šã—ãŸè¦ç´ ã®å‰å¾Œã«è‡ªå‹•çš„ã«è¦ç´ ã‚’生æˆã—ã¦è¿½åŠ ã™ã‚‹ã¨ã„ã†æ©Ÿèƒ½ã‚’æŒã¡ã¾ã™ã€‚引用<q>ã®å‰å¾Œã«å¼•用符を付ã‘ã‚‹ã€ã¨ã„ã†ã®ãŒãŠãã‚‰ãæœ€ã‚‚一般的ãªä½¿ç”¨æ–¹æ³•ã‹ã¨æ€ã„ã¾ã™ã€‚

.talk:before {
content: "「";
}
.talk:after {
 content: "ã€";
}
師曰ã<q class="talk">ボンカレーã¯ã©ã†ã¤ãã£ã¦ã‚‚ã†ã¾ã„ã®ã </q>

CSS3ã®ãƒŸã‚µãƒ¯ã§ã¯ã€ç›®ã®å‰ã«çœ‰ã€å¾Œã«ç›®çމã€ã¾ãŸå£ã®å¾Œã«å£è¨±ã‚’追加ã—ã¾ã—ãŸã€‚ãれãžã‚Œã®ã‚¹ã‚¿ã‚¤ãƒ«ã«ã¤ã„ã¦ã¯ã€ã“ã“ã§ã¯çœç•¥ã—ã¾ã™ã€‚(実際ã®ã‚³ãƒ¼ãƒ‰ã‚’見ã¦ã­ã€‚)

ã‚ã¨ã¯ã€å‹˜

最終的ãªç·šã®ä½œã‚Šã¨ã‹ã¯ã€çµå±€å‹˜ã«ãªã‚‹ã¨æ€ã„ã¾ã™ã€‚ã“れãらã„ã®è§’度ã ã‹ã‚‰ãƒ¼å¾„ã‚’X pxã«ã—ã¦ãƒ¼Y deg傾ã‘ã¦ãƒ¼ã¨ã„ã†ã®ã¯å°‘ã—ãšã¤æ•°å€¤ã‚’当ã¦ã¯ã‚試ã—ãªãŒã‚‰ä½œã‚Šã¾ã—ãŸã€‚

ã¾ãƒ¼åŠ›æŠ€ã£ã™ã‚ˆâ€¦â€¦ã€‚

実行サンプル

jsdo.itã«ã€ä»Šå›žã®å®Ÿè¡Œã‚µãƒ³ãƒ—ルを公開ã—ã¦ãŠãã¾ã—ãŸã€‚よã‚ã—ã‘れã°ã”覧ãã ã•ã„。

CSS3ã®ãƒŸã‚µãƒ¯ã®ä½œã‚Šæ–¹ã®ã‚µãƒ³ãƒ—ル

ãŠã¾ã‘ : 派生型

ã“れを公開ã—ã¦ã™ãã€GeckoãŸã‚“ãŒforkã—ã¦æ¤æ¯›ã—ãŸä¸Šã«ãƒžã‚¦ã‚¹ãƒœã‚¿ãƒ³ã‚’ãŠã™ã¨ã€Œãã«ã‚…ーã€ã£ã¦ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã™ã‚‹ã®ã‚’作ã£ã¦ãれã¾ã—ãŸã€‚ãªã«ã“れãã‚‚ã„ã™ã”ã„ï¼

æ¤æ¯›æ¸ˆã¿ forked from: CSS3ã®ãƒŸã‚µãƒ¯

ã•らã«ãã®å¾Œagoã•ã‚“ãŒã¾ãŸforkã—ã¦ã€ã¶ã‚“投ã’られるよã†ã«ãªã£ã¦ã¾ã—ãŸã€‚ã“れã¯åˆ¥é€”JavaScriptã®ãƒ©ã‚¤ãƒ–ラリを使ã£ã¦ã‚‹ã¿ãŸã„ã§ã™ã­ã€‚

è½ã¨ã—ã¦ã¿ãŸ forked from: æ¤æ¯›æ¸ˆã¿ forked from: CSS3ã®ãƒŸã‚µãƒ¯

よã‘れã°ã©ãªãŸã‹ã€ãã®å…ˆã‚‚forkã—ã¦æ‰‹ã‚’加ãˆã¦ã¿ã¦ãã ã•ã„ãªã€‚ã¨ã„ã†ã‹ã€ã„ã„加減頭髪を加ãˆã¦ã‚ã’ã¦ãã ã•ã„。

ãŠé¡˜ã„ã—ã¾ã—ãŸã‚ˆã€‚