2015年07月03日

CSS 五輪マーク

スポンサード リンク

DIV 要素にborderプロパティ border-radiusプロパティを設定してリングを生成し、 :before擬似要素 / :after擬似要素で五輪マークの輪の外周,内周を白で縁取っています。

オリンピックマーク(五輪マーク)をCSSで描いてみました。

マルチドメイン、マルチデータベース、共有 SSL など多彩な機能と 256GBの大容量なサーバー環境が 月額1,000円(税抜)〜! ホームページつくるならレンタルサーバー 『ヘテムル』

サンプルソース

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>CSSで描くオリンピックマーク(五輪マーク)</title>
<style>
.gorinWrap{
	position: relative;  /* 相対配置(相対位置)*/
	height: 240px;width:500px;
	border: 1px solid #000;
	  }

	/* --- 全ての輪の基本,設定 ---*/
.gorinBox{
	margin-top:5px;	margin-left:45px;
	position: absolute; /* 絶対配置 */
	height:100px; width:100px;
	border:15px solid transparent;
	border-radius:50%;
	  }

	/* ----- 青の輪 ----- */
.blueWa{
	z-index: 0;/* 要素の重なり順序 */
	top:20px;  left:0px;/* 親要素からの距離 top,left,bottom,right プロパティ*/
	border-color: blue;
	  }
.blueCover{
	 /* 青の輪 右側,を橙の上に */
	z-index: 40;/* 要素の重なり順序 橙は z-index: 30;*/
	top:20px; left:0px;
	border-right-color: blue;
	  }
	/*----- 橙の輪 黒い輪の上へ -----*/
.orangeWa, .orangeCover{
	z-index: 30;
	top:80px;  left:70px;
	border-color: orange;
	  }
.orangeCover{ /* 橙の輪 上側 */
	border-top-color: orange;
	}
	/*----- 黒の輪 -----*/
.blackWa{
	z-index: 20;
	top:20px;  left:140px;
	border-color: black;
	  }
.blackCover{ /* 黒の輪 下側,を橙の上に */
	z-index: 40;
	top:20px;  left:140px;
	border-bottom-color: black;
	border-right-color: black;
	  }
	/*----- 緑の輪 -----*/
.greenWa{
	z-index: 20;
	top:80px;  left:210px;
	border-color: green;
	  }
.greenCover{ /* 緑の輪 左側を黒の上に */
	z-index: 50;
	top:80px;  left:210px;
	border-left-color: green;
	  }
	/*----- 赤の輪 緑の下へ -----*/
.redWa{
	z-index: 10;
    	top:20px; left:280px;
	border-color: red;
	  }
.redCover{ /*赤の輪,下側を緑の上に*/
	z-index: 20;
	top:20px;  left:280px;
	border-bottom-color: red;
	  }

     /*--- 全ての輪の 縁取り(外周,内周) 共通コード ---*/
.gorinBox:before, .gorinBox:after{/* :before擬似要素 / :after擬似要素 */
	content: "";
	position: absolute;
	border:3px solid transparent;
	border-radius:50%;
	  }
.gorinBox:before{
	 /* 全ての輪の外周 */
	top:-18px;  left:-18px;
	height:130px; width:130px;
	  }
.gorinBox:after{
	 /* 全ての輪の内周 */
	top:0px;  left:0px;
	height:94px; width:94px;
	  }
.blueCover:before, .blueCover:after{
	 /* 青の輪 縁取り,右側 */
	border-right:3px solid #fff;
	  }
.orangeCover:before, .orangeCover:after{
	 /* 橙の輪 縁取り */
	border:3px solid #fff;
	  }
.blackCover:before, .blackCover:after{
	 /* 黒の輪 縁取り,下側 右側*/
	border-bottom:3px solid #fff;
	border-right:3px solid #fff;
	  }
.blackCover:after{
	 /* 黒の輪 縁取り,内周左側を透過 */
	border-left:3px solid transparent;
	 }
.greenWa:before, .greenWa:after{
	 /* 緑の輪 縁取り,上側 */
	border-top:3px solid #fff;
	  }
.greenCover:before, .greenCover:after{
	 /* 緑の輪 縁取り,左側 */
	border-left:3px solid #fff;
	  }
.redCover:before, .redCover:after{
	 /*赤の輪 縁取り,下側*/
	border-bottom:3px solid #fff;
	  }
</style>
</head>
<body>
<div class="gorinWrap">
  <div class="gorinBox blueWa"></div>
  <div class="gorinBox blueCover"></div>
  <div class="gorinBox orangeWa"></div>
  <div class="gorinBox orangeCover"></div>
  <div class="gorinBox blackWa"></div>
  <div class="gorinBox blackCover"></div>
  <div class="gorinBox greenWa"></div>
  <div class="gorinBox greenCover"></div>
  <div class="gorinBox redWa"></div>
  <div class="gorinBox redCover"></div>
</div>
</body>
</html>

リングとリングの重なり,絡み合いの表現方法

  DIV要素で作った円に位置を指定して重ねると上のように青の上に橙、その上に黒と、順に重なり、後になるほど前面に表示されます。 でも五輪マークは輪を五個、並べて重ねるだけではなく、輪が全て絡み合うように 作成しなければなりません。 たとえば青色のリングでは右側のボーダーを上書きして(.blueCover)、橙の上に持ってくることで橙が下を潜っているように見せています。 他も同様にクラス名 .***Cover で重なり、絡みを表現しています。

輪が太く,色を少し淡くした五輪マーク

  /*----- HTML -----*/
    <div class="gorin20">
      <span></span>
    </div>

 /*----- CSS -----*/
  .gorin20{ /* 基点になる輪 blue */
	  margin:10px;
	  position : relative;
	  height:20px;  width:20px;
	  border-radius:50%;
	  border:20px solid #09c;
	    }

 .gorin20:before, .gorin20:after,
 .gorin20 span:before, .gorin20 span:after{
	  /* 共用コード */
	 content: "";
	 position: absolute;
	 display:block;
	 height:20px;  width:20px;
	 border-radius:50%;
	   }
.gorin20:before{ /* 橙 */
	top:8px;  left:9px;
	border:20px solid #fc0;
	  }
.gorin20:after{ /* 黒 */
	top:-20px;	left:38px;
	border:20px solid #000;
	  }
.gorin20 span:before{ /* 緑 */
	top:8px;  left:66px; z-index:1;
	border:20px solid #093;
	  }
.gorin20 span:after{ /* 赤 */
     	top:-20px;  left:94px; z-index:1;
	border:20px solid #f03;
	  }

五輪マーク 輪の配置

  blue の輪position: relative;を、残り4つの輪に position: absolute; を設定します。   これで blue の輪を基点にして配置する事ができます。 配置位置の指定は top,left,bottom,rightプロパティで行います。

:before擬似要素 :after擬似要素

:before及び:after擬似要素は 対象要素内の先頭 / 末尾にコンテンツを追加します。  これを<div>,<span>要素に指定して4ツの輪を追加しています。 CSS疑似要素 :before / :after
posted by javaScript at 21:37 | 大阪 ☁ | スタイルシート CSS | このブログの読者になる | 更新情報をチェックする

2015年06月21日

borderプロパティで円形、楕円形、半円、etc

スポンサード リンク

要素の周囲に枠線(ボーダー)を付ける際に使用する borderプロパティを利用して三角形を作成し
border-radiusプロパティで四辺を丸め、円形を作ります。ボーダーの太さで、いろいろ.....できます。.
レンタルサーバーheteml

border,border-radiusプロパティで円形を作成

  ※下記 サンプルコード:HTML
           <div class="***"></div>   *** に下記コードのクラス名を入れてください。 

ボーダーで三角形を作り そのブロック要素を円形に

.bdrSikaku{ /* border で三角形 */
	width: 0; height: 0;
	border-top: 50px solid #05f;
	border-right: 50px solid #0f0;
	border-bottom: 50px solid #f0b;
	border-left: 50px solid #777;
	  }
.bdrEn{
	width: 0; height: 0;
	border-top: 50px solid #05f;
	border-right: 50px solid #0f0;
	border-bottom: 50px solid #f0b;
	border-left: 50px solid #777;
	border-radius: 50%;
	  }

 ブロック要素の高さ、幅を無しにしてボーダー幅 (ここでは50px) を設定します。
見易くする為、色を変えてます。各ボーダーが三角形になりました。
これに border-radius: 50%; を設定すると正円形になります。
そして各ボーダーの設定値を変更することでさまざまな円形を描写することができます。。
ボーダーの色は transparent で透明になり、親要素の背景色が透過します。

円形 描画コード

半円形 右上

.bdrEn-MigiUe{
	width: 0; height: 0;
	border: 50px solid transparent;
	border-top: 50px solid #05f;
	border-right: 50px solid #0f0;
	border-radius: 50%;
	  }

半円形 左下

.bdrEn-HidariSita{
	width: 0; height: 0;
	border: 50px solid transparent;
	border-bottom: 50px solid #f0b;
	border-left: 50px solid #777;
	border-radius: 50%;
	  }

1/4円形 右

.bdrEn-qtrMigi{
	width: 0; height: 0;
	border: 50px solid transparent;
	border-right: 50px solid #0f0;
	border-radius: 50%;
	  }

1/4円形 上

.bdrEn-qtrUe{
	width: 0; height: 0;
	border: 50px solid transparent;
	border-top: 50px solid #05f;
	border-radius: 50%;
	  }

扇形、 1/4円形に高さ、幅を設定して

.bdrEn-Oogi{
	width: 60px; height: 60px;
	border: 50px solid transparent;
	border-top: 50px solid #05f;
	border-radius: 50%;
	  }

★☆★☆★☆ ナウでヤングなレンタルサーバー!ロリポップ! ☆★☆★☆★
月額105円〜容量最大120GB!大人気のWordpressも簡単インストール★
WordPressが簡単・すぐに使える『レンタルサーバーheteml(ヘテムル)

パックマン 左向き

.bdrEn-Pacman{
	width: 0; height: 0;
	border: 50px solid green;
	border-left: 50px solid transparent;
	border-radius: 50%;
	  }

パックマン 餌を食べてます。

.pacMan-Esa {
	position: relative;
	width: 0px; height: 0px;
	border-radius: 50%;
	border: 50px solid #f0f;
	border-right-color: transparent;
	  }
.pacMan-Esa:after { /* CSS疑似要素 :before / :after */
	left: 15px; top: -10px;
	position: absolute; content: "";
	background-color: blue;
	height: 20px; width: 20px;
	border-radius: 50%;
	box-shadow: 30px 0px 1px 1px black,65px -3px 1px 2px teal;
	  }

円の外側に ぼかし をいれる。box-shadowプロパティ

.bdrEn-Bokasi{
	width: 0; height: 0;
	border: 50px solid yellow;
	border-radius: 50%;
	box-shadow: 0 0 17px 5px #fd6515;
	  } /* 横方向 縦方向 ぼかし 広がり 影の色; */

ボーダー(擬似的)を付ける。すでにborderを使っているので box-shadow

.bdrEn-Bdr{
	width: 0; height: 0;
	border: 50px solid yellow;
	border-radius: 50%;
	box-shadow: 0 0 0 5px #fd6515;
	  }

楕円形

.Daen{
	width: 0; height: 0;
	border-top: 100px solid #05f;
	border-right: 50px solid #0f0;
	border-bottom: 100px solid #f0b;
	border-left: 50px solid #f63;
	border-radius: 50%;
	  }

横向き 楕円形

.DaenYoko{
	width: 380px; height: 30px;
	border-top: 20px solid #118aff;
	border-right: 80px solid #66ff66;
	border-bottom: 20px solid #ff6ca3;
	border-left: 80px solid #fe9900;
	border-radius: 50%;
	  }

楕円形 'つ'の字ボーダー

.daEnBdr{
	height:100px;
	width:200px;
	border-radius: 50%;
	border-top:10px solid red;
	border-right:10px solid red;
	  }
posted by javaScript at 19:49 | 大阪 ☀ | スタイルシート CSS | このブログの読者になる | 更新情報をチェックする