ウェブ学のすすめ

Study of Web Design & Programing

iOS 7のロゴをCSSで表現してみた(borderにグラデーションをかける方法)


f:id:vinton:20130609173811p:plain

jsdo.itiOS 7のロゴをCSSで表現してみました。iOS7という作品をforkしてグラデーションなどを加えています。borderにはグラデーションをかけることができないため、paddingを用いて線を表現してみました。

プレビュー


HTML

borderを使わずに線を表現するのには
同じ大きさのボックスを2つ作って(例:class名ios7とios7-inner)、

  • 外側のボックス(class名ios7):bacgroundに色をつけたりグラデーションさせ、線の太さをpaddingで設定する。
  • 内側のボックス(class名ios7-inner):bacgroundを背景色にする

これでborderを使わずに線を表現することができます。

<div class="board">
<div class='ios7'>
    <div class='ios7-inner'></div> 
    <div class='ios7-height'>
        <div class='ios7-height-inner'></div> 
    </div>
</div>
</div>

CSS

メディアクエリを使って960px以上のときは
幅が960pxに固定するよう設定しています。

body {
    background:url(http://jsrun.it/assets/d/G/i/J/dGiJe.jpg);
    background-position: center center;
    background-repeat: no-repeat;
    -webkit-background-size: 100% 100%;
    -moz-background-size: 100% 100%;
    background-size: 100% 100%;
    background-attachment: fixed;
    margin: 100px auto 0;
}

.board {
    background: url(http://jsrun.it/assets/o/4/E/4/o4E4L.png);
    width:100%;
    padding:20px 0;  
}
.ios7 {
    margin: 0 auto;
    width: 15em;
    height: 22.725em;
    overflow: hidden;
    position: relative;
    font-size: 10px;
    background: -webkit-gradient(linear, left top, right bottom, 
        from(rgb(0, 255, 255)), 
        color-stop(0.1, rgb(0, 164, 255)), 
        color-stop(0.15, rgb(0, 142, 255)), 
        color-stop(0.25, rgb(0, 98, 255)), 
        to(rgb(0, 84, 255)));
    padding:0.86em 0 0; 
}

.ios7-inner {
    padding:10px;  
    background: url(http://jsrun.it/assets/o/4/E/4/o4E4L.png);
    height:100%;
}

.ios7-height {
    content: "";
    width: 90em;
    height: 90em;
    position: absolute;
    top: -8.55em;
    left: 4.35em;
    border-top-left-radius: 31.575em;
    background: -webkit-gradient(linear, left top, left bottom, 
        from(rgb(0, 84, 255)), 
        color-stop(0.1, rgb(0, 84, 255)),
        color-stop(0.2, rgb(0, 124, 255)), 
        color-stop(0.30, rgb(214, 39, 92)), 
        to(rgb(255, 6, 35)));
    padding: 0.76em;
   
}

.ios7-height-inner {
    background: url(http://jsrun.it/assets/o/4/E/4/o4E4L.png);
    height:100%;
    border-radius: 31.575em;
}

@media screen and (min-width: 960px) {
	.board {
        width:960px;
        margin: 100px auto 0;
    }
}