表裏
ページ上部へWhat's time is it now? HTML/CSS/Javascript/jQuery
>HTML<HTML >CSS<CSS >自分用コード<自分用コード
scrollsmoothly.jsカスタム済み(っても横移動させないだけ)
$(document).ready(function(){
$.extend($.easing, {
easeOutQuart: function(x, t, b, c, d){
return -c * ((t = t / d - 1) * t * t * t - 1) + b;
}
});
$('#PageTopLink').hide();
});
$(document).on('click', 'a[href*=#]', function(event){
if (this.href.indexOf("#") === 0 || (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname)) {
event.preventDefault();
if ($(this.hash).length) {
var position = $(this.hash).offset().top;
$('html,body').animate({
scrollTop: position
}, 1000, 'easeOutQuart');
}
}
});<div id="tab_area"> <dl id="contents01"> <dt><a href="#contents01">CONTENTS【01】</a></dt> <dd> <p><strong>CONTENTS【01】</strong></p> <p>ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。</p> <p>ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。</p> </dd> </dl> <dl id="contents02"> <dt><a href="#contents02">CONTENTS【02】</a></dt> <dd> <p><strong>CONTENTS【02】</strong></p> <p>ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。</p> <p>ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。</p> <p>ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。</p> </dd> </dl> <dl id="contents03"> <dt><a href="#contents03">CONTENTS【03】</a></dt> <dd> <p><strong>CONTENTS【03】</strong></p> <p>ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。</p> <p>ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。</p> <p>ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。</p> <p>ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。</p> <p>ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。</p> <p>ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。ダミーテキスト。</p> </dd> </dl> </div><!--/#tab_area-->
/* TabArea
-------------------------- */
#tab_area {
margin: 0 auto;
width: 540px;
height: 350px;
text-align: left;
position: relative;
}
#tab_area dl {
width: 540px;
height: 340px;
border: #777 1px solid;
position: absolute;
}
#tab_area dl dt {
top: 0;
width: 180px;
height: 40px;
position: absolute;
border-bottom: #777 1px solid;
z-index: 5;
}
#tab_area dl#contents02 dt {
border-left: #777 1px solid;
border-right: #777 1px solid;
}
#tab_area dl#contents01 dt {left: 0;}
#tab_area dl#contents02 dt {left: 180px;}
#tab_area dl#contents03 dt {left: 360px;}
#tab_area dl dt a {
width: 180px;
height: 40px;
line-height: 40px;
text-align: center;
display: block;
}
#tab_area dl dt a:hover {background: #999;}
#tab_area dl dd {
top: 41px;
left: 0;
height: 300px;
position: absolute;
opacity: 0;
overflow-y: auto;
}
#tab_area dl dd p {
padding: 10px 10px;
}
/* CSS3 TabAnimation
-------------------------- */
@-webkit-keyframes TabSwitch {
0% {background: #fff;}
100% {background: #777;}
}
#tab_area dl:target dt a {
-webkit-animation-name: TabSwitch;
-webkit-animation-duration: 1s;
-webkit-animation-iteration-count: 1;
color: #fff;
font-weight: bold;
background: #777;
}
@-webkit-keyframes ContentsSwitch {
0% {opacity: 0;}
100% {opacity: 1;}
}
#tab_area dl:target dd {
-webkit-animation-name: ContentsSwitch;
-webkit-animation-duration: 1.5s;
-webkit-animation-iteration-count: 1;
opacity: 1;
z-index: 15;
}スクロールバーアニメーションで伸びるようになってるけど
/* CSS3 TabAnimation
-------------------------- */
@-webkit-keyframes TabSwitch {
0% {background: #fff;}
100% {background: #777;}
}
#tab_area dl:target dt a {
-webkit-animation-name: TabSwitch;
-webkit-animation-duration: 1s;
-webkit-animation-iteration-count: 1;
color: #fff;
font-weight: bold;
background: #777;
}
@-webkit-keyframes ContentsSwitch {
0% {opacity: 0;}
100% {opacity: 1;}
}
#tab_area dl:target dd {
-webkit-animation-name: ContentsSwitch;
-webkit-animation-duration: 1.5s;
-webkit-animation-iteration-count: 1;
opacity: 1;
z-index: 15;
} CSS(CSS3)のみでタブUI(ボタンアクティブ付き)を実装する方法。(Ver.2)引用
<div class="tab"> <dl id="tit1"><!--1--> <dt><a href="#tit1">たぶ1</a></dt> <dd>たぶ1内容</dd> </dl> <dl id="tit2"><!--2--> <dt><a href="#tit2">たぶ2</a></dt> <dd>たぶ2内容</dd> </dl> <dl id="tit3"><!--3--> <dt><a href="#tit3">たぶ3</a></dt> <dd>たぶ3内容</dd> </dl> <dl id="tit4"><!--4--> <dt><a href="#tit4">たぶ4</a></dt> <dd>たぶ4内容</dd> </dl> </div>
.tab {
margin: 0 auto;
margin-bottom:20px;
width: 90%;
height: 240px;
text-align: left;
position: relative;
}
.tab dl {
width: 100%;
height: 100%;
border: #777 1px solid;
position: absolute;
}
.tab dl dt {
top: 0;
width: 25%;
height: 25px;
position: absolute;
border-bottom: #555 1px solid;
z-index: 5;
}
.tab dl dt:not(:first-child){
border-left: #555 1px solid;
}
.tab dl dt:not(:last-child){
border-right: #555 1px solid;
}
.tab dl:nth-child(1) dt {left: 0;}
.tab dl:nth-child(2) dt {left: 25%;}
.tab dl:nth-child(3) dt {left: 50%;}
.tab dl:nth-child(4) dt {left: 75%;}
.tab dl dt a {
width:100%;
height: 25px;
color:#333;
line-height: 25px;
text-align: center;
display: block;
text-decoration:none;
}
.tab dl:nth-child(2) dt a,
.tab dl:nth-child(3) dt a,
.tab dl:nth-child(4) dt a{
width: calc(100% - 1px);
margin-left:1px;
}
.tab dl dt a:hover {color:#fff;background:#cfcfcf;text-decoration:underline;}
.tab dl dd {
width:100%;
top: 26px;
left: 0;
margin:0;
height: calc(100% - 26px);
position: absolute;
opacity: 0;
overflow-y:scroll;
background:#ccc;
}
.tab dl:first-child dd {
opacity: 1;
}
.tab dl dd p {
padding: 10px 10px;
}
/* CSS3 TabAnimation
-------------------------- */
@-webkit-keyframes TabSwitch {
0% {background: #fff;}
100% {background: #777;}
}
.tab dl:target dt a {
-webkit-animation-name: TabSwitch;
-webkit-animation-duration: 1s;
-webkit-animation-iteration-count: 1;
color: #fff;
font-weight: bold;
text-decoration:underline;
background: #777;
}
@-webkit-keyframes ContentsSwitch {
0% {opacity: 0;}
100% {opacity: 1;}
}
.tab dl:target dd {
opacity: 1;
z-index: 15;
}
/*文字装飾*/
.txtu{text-decoration:line-through !important;}
/*タブ強制切替*/
.hei120{height:120px;}/*divのtabに『class="hei120"』*/
.tab dl dd.tabon{opacity: 1;}/*ddに『class="tabon"』*/このサイトのやつ
CSSの方で使わないタブに取り消し線引くやつ(class="txtu")と、ページ開いた時最初に表示するタブ内容の変更(class="tabon")、内容物少なかったら高さ縮めるやつ(class="hei120")を入れてある
細かい指定の方のCSSに入れとくといいかも(付属品なのでなくても大丈夫)
因みにほぼパーセントで指定してて『calc』使ってるのでアンドロイド端末注意
ページ開けてからのタブボタン色付けるのは無理だった・・・
<div class="table">
<div id="dv1" class="cel" onclick="hyouji('1')">CONTENTS【01】</div>
<div id="dv2" class="cel" onclick="hyouji('2')">CONTENTS【02】</div>
<div id="dv3" class="cel" onclick="hyouji('3')">CONTENTS【03】</div>
<div class="row" id="dv"></div>
</div>
<div class="table">
<div id="dv4" class="cel" onclick="hyouji('4')">CONTENTS【04】</div>
<div id="dv5" class="cel" onclick="hyouji('5')">CONTENTS【05】</div>
<div id="dv6" class="cel" onclick="hyouji('6')">CONTENTS【06】</div>
<div class="row" id="dvb"></div>
</div>
div.table{
display:table;
width:606px;
border:1px black solid;
}
div.cel{
font-size:16px;
border:1px black solid;
padding:5px;
cursor:pointer;
width:200px;
display:table-cell;
}
div.row{
display:table-row;
width:606px;
height:100px;
}
function hyouji(n){
document.getElementById("dv1").style="background-white;";
document.getElementById("dv2").style="background-white;";
document.getElementById("dv3").style="background-white;";
document.getElementById("dv4").style="background-white;";
document.getElementById("dv5").style="background-white;";
document.getElementById("dv6").style="background-white;";
if (n==1){
document.getElementById("dv").innerHTML="<p>CONTENTS【01】</p>";
document.getElementById("dv1").style="background-color:aliceblue;";
}
if (n==2){
document.getElementById("dv").innerHTML="<p>CONTENTS【02】</p>";
document.getElementById("dv2").style="background-color:aliceblue;";
}
if (n==3){
document.getElementById("dv").innerHTML="<p>CONTENTS【03】</p>";
document.getElementById("dv3").style="background-color:aliceblue;";
}
if (n==4){
document.getElementById("dvb").innerHTML="<p>CONTENTS【04】</p>";
document.getElementById("dv4").style="background-color:aliceblue;";
}
if (n==5){
document.getElementById("dvb").innerHTML="<p>CONTENTS【05】</p>";
document.getElementById("dv5").style="background-color:aliceblue;";
}
if (n==6){
document.getElementById("dvb").innerHTML="<p>CONTENTS【06】</p>";
document.getElementById("dv6").style="background-color:aliceblue;";
}
}知恵袋で作ってもらったやつ
タブ押してもハッシュ付かないのでページ移動もしない
つまりスクロールしない
しかし内容の管理が難しい可能性あり
<ul class="stylebox" id="stylebox-1"> <li id="pic-1"> <a href="#stylebox-1"><img class="orig" src="img/n1.gif"></a> <a href="#pic-1"><img class="tmb" src="img/n2.gif"></a> </li> <li id="pic-2"> <a href="#stylebox-1"><img class="orig" src="img/n3.gif"></a> <a href="#pic-2"><img class="tmb" src="img/n4.gif"></a> </li> </ul>
.stylebox {
list-style-type: none;
padding: 0;
overflow: auto;
}
.stylebox li {
float: left;
margin: 0 2px 2px 0;
}
.stylebox .orig {
width: 0;
height: 0;
transition: all 0.6s ease;
}
.stylebox .tmb {
transition: all 0.6s ease;
}
.stylebox li:target .orig {
width: 100%;
height: auto;
}
.stylebox li:target .tmb {
width: 0;
height: 0;
}
本当に引用元から引っ張ってきただけ(ヒドイ)
簡単に拡大させたいだけならこれでいいかも
『id="pic-1"』とかってのがサムネと拡大後画像のセットで、つまりは画像2枚必要
1つ目のimgが拡大後用、2つ目がサムネ
オリジナル動きがクソ程早かったからCSSの『transition』を0.3から0.6に変更した
クリックするとその場で左上を軸に右下へ拡大するんだけど、その際周りの要素押しのけて拡大するから、その動作考えて使用しないととんでもねぇことになるかも
JavaScriptを使わない、ページ移動せずにクリックで画像を拡大表示するCSS引用
<a href="img/rgb1.png" rel="lightbox">RBG</a> <a href="img/rgb1.png" rel="lightbox[rgbimg]" title="RGB(重なり前)"><img src="img/rgb1.png" width="50px"></a> <a href="img/rgb2.png" rel="lightbox[rgbimg]" title="RGB(重なり後)"><img src="img/rgb2.png" width="50px"></a>
なんといってもハッシュがつかない(つまり更新してもスクロールしない(歓喜)
aタグにrel="lightbox"書くことで、現ページで画像を表示するようになる
サムネ画は画像にリンク貼るのと同じで、aタグにimgタグ挟めばおk(文字も可)
rel属性に『lightbox』の後、『[]』内に任意の文字を半角英数字で書けば、同じ文字同士でグループ化出来て、画像を表示した際に矢印が出る
バツ印などの画像はCSSで制御してるっぽいので適時編集
CSSもjsも記述多くて正直別外部ファイルで読み込んだ方が現実的
以下、カスタム済みCSS&Javascript(っても少し弄っただけ)
lightbox.css、lightbox.js
原型丸々載せるのは気が引けるので引用元でダウンロードすること
<script type="text/javascript" src="js/lightbox.js"charset="Shift-JIS"></script>Lightbox引用
<ul id="nav">
<li id="nav1" class="click"><a href=""><img src="img/nav1.png" alt="1"></a></li>
<li id="nav2"><a href=""><img src="img/nav2.png" alt="2"></a></li>
<li id="nav3"><a href=""><img src="img/nav3.png" alt="3"></a></li>
<li id="nav4"><a href=""><img src="img/nav4.png" alt="4"></a></li>
<li id="nav5"><a href=""><img src="img/nav5.png" alt="5"></a></li>
<li id="nav6"><a href=""><img src="img/nav6.png" alt="6"></a></li>
</ul>
#nav li{
width:100px;
height:30px;
display:inline-block;
background:#CCC;
}
#nav li a{
display:block;
width:100px;
height:30px;
text-align:center;
}
#nav li a:hover{background:#666666;}
$(function(){
$('#nav a').hover(function(){
var img = $("img", this);
img.attr('src', img.attr('src').replace('.png','_ov.png'));
},function(){
var img = $("img", this);
img.attr('src', img.attr('src').replace('_ov.png','.png'));
});
$('#nav li.click').each(function(){
var txt = $(this).html();
$(this).html(txt.replace(/.png/g,'_ov.png'));
});
});
liタグ、もしくはaタグなど、imgタグとその親要素のサイズが違う場合にこいつ使うと便利
因みにclass="click"で現在ページとして色変えられる
<div id="ab">absolute<br>left30</div> <div id="re">relative<br>left100</div> <div id="st">static<br>top30/left30</div> <div id="fi">fixed<br>top70/left100</div>
position:absolute; position:relative; position:static; position:fixed;
absoluteはrelativeとstaticを0として移動、浮いてる感じ
relativeは基準位置を作り、その後の同階層タグもこれの底をtop0とする
staticがデフォルト
fixedはブラウザ画面に貼り付けるイメージ(IE6以前は動作不可)
<div class="del">1</div> <div>2</div> <div class="del">3</div> <div>4</div> <div class="del">5</div>
div{
width:200px;
height:50px;
background:#ccc;
margin-top:5px;
}
.del{display:none;}要素そのものが消える
前後の要素は『display:none;』を指定された要素を無いものとして配置される
因みにSEO的にはあまりよくないらしい
<div class="vis">1</div> <div>2</div> <div class="vis">3</div> <div>4</div> <div class="vis">5</div>
div{
width:200px;
height:50px;
background:#ccc;
margin-top:5px;
}
.vis{visibility:hidden;}指定した要素は見た目としては消えるけど、そこにあるものとして前後の要素が配置される
<div id="op2"> ◆opacity0.7使用語<br> 外枠の文字 <div>中身の文字</div> </div> <div id="op3"> ◆opacity0.3使用語<br> 外枠の文字 <div>中身の文字</div> </div>
div#op2{
opacity:0.7;
}
div#op3{
opacity:0.3;
}その要素全体(中身含む)に適用
小数点で指定も可
最大値は『1』で、それ以上濃くはならない
CSS3 要素を透明に出来る Opacity と RGBa の使い方引用
<div id="op2"> ◆rgba(85,186,240,0.7)<br> 外枠の文字 <div>中身の文字</div> </div> <div id="op3"> ◆rgba(85,186,240,0.3)<br> 外枠の文字 <div>中身の文字</div> </div>
div#op2{
background:rgba(85,186,240,0.7);
}
div#op3{
background:rgba(85,186,240,0.3);
}backgroundやcolor、borderなどの『色を指定するプロパティ』にカラーコードの代わりになるような形で書く
色はRGBで書くので注意(255~0までのやつ)
カッコ内は左から『赤』『緑』『青』『透明度』
小数点で指定も可
最大値は『1』で、それ以上濃くはならない
CSS3 要素を透明に出来る Opacity と RGBa の使い方引用
<div id="op1"> ◆実際の色<br> 外枠の文字 <div>中身の文字</div> </div> <div id="op2"> ◆transparent使用語<br> 外枠の文字 <div>中身の文字</div> </div>
div#op1,div#op2{
background:#55BAF4;
}
div#op1 div,div#op2 div{
background:#C2F455;
}
div#op2 div{
background:transparent;
}実はbackgroundプロパティのただの初期値
背景色を大まかな要素に反映した後、個別に消したい場合に使うといい
<table border="1"> <caption>captopnタグでタイトル</caption> <tr> <th>thは</th> <td colspan="2">こうして繋げる場合<br> 繋げた分のtdは削除する</td> <td></td> <td></td> </tr> <tr> <th>太字</th> <td rowspan="2">上に同じく</td> <td></td> <td></td> <td></td> </tr> <tr> <th>になる</th> <td></td> <td></td> <td></td> </tr> </table> <table> <caption>CSSで枠消し</caption> <tr> <th>thは</th> <td colspan="2">こうして繋げる場合<br> 繋げた分のtdは削除する</td> <td></td> <td></td> </tr> <tr> <th>太字</th> <td rowspan="2">上に同じく</td> <td></td> <td></td> <td></td> </tr> <tr> <th>になる</th> <td></td> <td></td> <td></td> </tr> </table> <table border="1" cellspacing="0" cellpadding="0"> <tr> <td>こ</td> <td>ん</td> <td>な</td> </tr> <tr> <td>か</td> <td>ん</td> <td>じ</td> </tr> </table> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td>こ</td> <td>ん</td> <td>な</td> </tr> <tr> <td>か</td> <td>ん</td> <td>じ</td> </tr> </table>
table:nth-child(1){
border:solid 1px #999;
}
table:nth-child(2){
border-collapse:collapse;
border:0;
padding:0;
}
table tr td,table tr th{
min-width:100px;
}CSSで枠を指定する場合、HTMLのtableに『border="1"』で指定してから色など指定する(CSSだけだと外枠しか変化しない)
colspan=""が横連結
rowspan=""が縦連結
文字位置の変更はテキスト位置参照
/*min-width*/
tr:first-child td:before{
display:block;
float:left;
width:100px;
content:"";
}
/*min-height*/
td:first-child:before {
display:block;
float:left;
height:100px;
content:"";なんとmin-width、min-height共に効かないので上記のCSSを適用
どうなってるかは知らん(え
before忘れないこと
<div class="flodel" style="width:960px;"> <div style="float:left;"> <table id="verali" border="0"> <tr><td class="b0" colspan="3">align</td></tr> <tr> <td>left</td> <td>center</td> <td>right</td> </tr> <tr><td class="b0" colspan="3" style="padding-top:15px;">valign・vertical-align</td></tr> <tr> <td colspan="3">baseline(デフォ)</td> <tr> <td>top</td> <td>middle</td> <td>bottom</td> </tr> </table> <table id="ver" border="0"> <tr><td class="b0" colspan="3">valign・vertical-alignいろいろ</td></tr> <tr> <td>上端揃え<span>text-top</span></td> <td>下端揃え<span>text-bottom</span></td> </tr> <tr> <td>super<span>上付き文字</span></td> <td>sub<span>上付き文字</span></td> </tr> </table> </div> <div style="float:left;"> <table id="ali" border="0"> <tr><td class="b0" colspan="2">align均等割り付け(IE以外不可)</td></tr> <tr> <td>auto<br> aあiいuう(以下略</td> <td>distribute<br> aあiいuう(以下略</td> </tr> <tr> <td>inter-word<br> aあiいuう(以下略</td> <td>kashida<br> aあiいuう(以下略</td> </tr> <tr> <td>inter-ideograph<br> aあiいuう(以下略</td> <td>tibetan<br> aあiいuう(以下略</td> </tr> <tr> <td>inter-cluster<br> aあiいuう(以下略</td> <td>text-align:justify;のみ<br> aあiいuう(以下略</td> </tr> </table> </div> </div>
/*-----横移動align-----*/
#verali tr:nth-child(2) td:nth-child(1){
text-align:left;
}
#verali tr:nth-child(2) td:nth-child(2){
text-align:center;
}
#verali tr:nth-child(2) td:nth-child(3){
text-align:right;
}
/*-----縦移動vertical-----*/
#verali tr:nth-child(3) td{
vertical-align:baseline;
}
#verali tr:last-child td:nth-child(1){
vertical-align:top;
}
#verali tr:last-child td:nth-child(2){
vertical-align:middle;
}
#verali tr:last-child td:nth-child(3){
vertical-align:bottom;
}
/*-----いろいろvertical-----*/
#ver tr:nth-child(2) td:nth-child(1) span{
vertical-align:text-top;
font-size:0.5em;
}
#ver tr:nth-child(2) td:nth-child(2) span{
vertical-align:text-bottom;
font-size:0.5em;
}
#ver tr:nth-child(3) td:nth-child(1) span{
vertical-align:super;
}
#ver tr:nth-child(3) td:nth-child(2) span{
vertical-align:sub;
}
/*-----カオス均等割り付け-----*/
#ali tr:not(:first-child) td{
text-align:justify;
}
#ali tr:nth-child(2) td:nth-child(1){
text-justify:auto;
}
#ali tr:nth-child(3) td:nth-child(1){
text-justify:inter-word;
}
#ali tr:nth-child(4) td:nth-child(1){
text-justify:inter-ideograph;
}
#ali tr:nth-child(5) td:nth-child(1){
text-justify:inter-cluster;
}
#ali tr:nth-child(2) td:nth-child(2){
text-justify:distribute;
}
#ali tr:nth-child(3) td:nth-child(2){
text-justify:kashida;
}
#ali tr:nth-child(4) td:nth-child(2){
text-justify:tibetan;
}横位置が『align』か『text-align』、縦位置が『valign』か『vertical-align』
HTMLタグに埋め込むならalign=""やvalign=""でいける
CSSに書く場合はtext-align:;とvertical-align:;(値はHTML/CSS同じ)
縦横以外にも、単語の横でspanタグなどを使用し文字を追加で書くことで、上付き文字などにもできる
text-align:justify;で均等割り付けできるけど同時使用のtext-justify:;はIE以外使用不可
なんか、text-align:justify;だけでも動くけど、より正確にできるっぽい
<div>divタグ<br> 行間指定なし<br> デフォだと若干空くようになっている</div> <div class="line1em"> divタグ<br> line-height:1em;指定<br> つまり一行分、もとい行間無しの状態<br> </div> <p class="line0">pタグ line-heigth:0;指定<br> 1emと同じになるかと思いきや、<br> 酷いことに文字が重なる<br> 行が増えるごとに何が書いてあるのかわからなくなる</p> <p class="line10px">pタグ<br> line-height:10px;指定<br> 普通に10px行間が空く けど文字の大きさよりも指定した数字のが小さければ<br> このように文字は重なる<br> (文字の大きさ:16px)</p>
body{font-size:16px;}
.line1em{line-height:1em;}
.line0{line-height:0em;}
.line10px{line-height:10px;}line-heightにpxやemで指定する
因みに1行分である1emは指定なしよりも行間狭い(なんと元々いくらか空いてた)
故に『line-height:0;』なんてしようものなら文字が重なって読めなくなる
pxも指定できるけどemで1em以上を目安に指定したほうが無難
<ul class="list"> <li>折角なので小洒落たマーカー</li> <li>いろはに</li> <li>ほへと</li> <li>ちるぬるを</li> <li>わかよたれそ</li> <li>つれならむ<br> ういのおくやまけふこえて</li> </ul> <ul class="imglist"> <li>画像</li> <li>いろはに</li> <li>ほへと</li> <li>ちるぬるを</li> <li>わかよたれそ</li> <li>つれならむ<br> ういのおくやまけふこえて</li> </ul>
.list{list-style:lower-greek;}
.imglist{list-style:none;}
.imglist li{
padding-left:20px;
background-repeat:no-repeat;
background-position:left 0.2em;
background-size:17px;
}
.imglist li:nth-child(2){background-image:url(img/n1.gif);}
.imglist li:nth-child(3){background-image:url(img/n2.gif);}
.imglist li:nth-child(4){background-image:url(img/n3.gif);}
.imglist li:nth-child(5){background-image:url(img/n4.gif);}
.imglist li:nth-child(6){width:120px;background-image:url(img/n5.gif);}んとにただ纏めて指定するだけ(所謂ショートハンド)
順番は関係無し、だけど纏めてnone指定すると普通に全部noneになる(つまりマーカーという存在が消える)
ので状況に応じて個別に指定したほうがいいかもしれん
因みに『listy-style-type』と『list-style-image』が指定されていたらimageの方が優先される
CSSプロパティ「list-style」の解説とサンプル。引用
<ul class="kuro"> <li>いろはに</li> <li>ほへと</li> <li>ちるぬるを</li> </ul> <ul class="siro"> <li>いろはに</li> <li>ほへと</li> <li>ちるぬるを</li> </ul> <ul class="sikaku"> <li>いろはに</li> <li>ほへと</li> <li>ちるぬるを</li> </ul> <ul class="suuzi"> <li>いろはに</li> <li>ほへと</li> <li>ちるぬるを</li> </ul>
.kuro{list-style-type:disc;}
.siro{list-style-type:circle;}
.sikaku{list-style:square;}
.suuzi{list-style:decimal;}リストマークはCSSでlist-style-type:;に種類を指定することで変更可能
※HTMLでタグに指定する場合も『style="list-style-type:disc;"』というようにするしかない
ul、ol、liに指定可能だけど、どう指定したか忘れるとドツボに嵌る(嵌った)ので、自分は可能な限りul、ol固定にする
又、多分纏めて指定に固定したほうがいい
スタイルシート[CSS]/リスト/マーカーの種類を指定する引用
スタイルシート(CSS) - リストマークの種類を変える/ホームページマスター引用
<ul class="list"> <li>list-style-image使用</li> <li>いろはに</li> <li>ほへと</li> <li>ちるぬるを</li> <li>わかよたれそ</li> <li>つれならむういのおくやまけふこえてあさきゆめみしえひもせすん</li> <li>えぐい</li> </ul> <ul class="back"> <li>background使用</li> <li>いろはに</li> <li>ほへと</li> <li>ちるぬるを</li> <li>わかよたれそ</li> <li>つれならむういのおくやまけふこえてあさきゆめみしえひもせすん</li> <li>個人的にこっちのが好き</li> </ul>
.list{list-style:none;}
.list li:nth-child(2){list-style-image : url("img/n1.gif");}
.list li:nth-child(3){list-style-image : url("img/n2.gif");}
.list li:nth-child(4){list-style-image : url("img/n3.gif");}
.list li:nth-child(5){list-style-image : url("img/n4.gif");}
.list li:nth-child(6){width:120px;list-style-image : url("img/n5.gif");}
.back{list-style:none;}
.back li{
padding-left:20px;
background-repeat:no-repeat;
background-position:left 0.2em;
background-size:17px;
}
.back li:nth-child(2){background-image:url(img/n1.gif);}
.back li:nth-child(3){background-image:url(img/n2.gif);}
.back li:nth-child(4){background-image:url(img/n3.gif);}
.back li:nth-child(5){background-image:url(img/n4.gif);}
.back li:nth-child(6){width:120px;background-image:url(img/n5.gif);}list-style-image:url();はあまり使用推奨されてない(文字と画像が縦方向にずれるため)
imgタグでの表示はなしの方向でオナシャス(面倒)
基本はbackground:;をliに指定して、背景としてリストマーカーにする
そのままだと普通に文字と被るので『padding-left』で画像分、もしくは任意のサイズ分中身の文字を右にずらす
今回は全部違う画像として指定したんで、疑似クラス使用してバラバラに指定したけども、backgroundプロパティを纏めて指定(することをショートハンドと謂う)してもいい
.back li{
background-repeat:no-repeat;
background-position:left 0.2em;
background-size:17px;
}
.back li:nth-child(2){background-image:url(img/n1.gif);}
↓これを『.back li』として纏めると
.back li{background:url(img/n1.gif) no-repeat left 0.2em / 17px;}※『background-position』と『background-size』をそのまんま並べるとバグるんで、必ず間に『/』(スラッシュ)入れること
『background-position』の縦位置は単位を『em』で指定すると2行になった時でも1行目の方にずれてくれる(必ずしも文字半分である0.5emというわけではない)
ずらしたくなければcenterなどの位置や、pxやmmなどの絶対値で指定すること
リストのマークに画像を使用(list-style-image) - リストプロパティ - スタイルシート入門引用
list-style-imageで指定したリストマークがズレる時は背景画像にして対象する方法もある | WEB-LABO引用
<ul class="list"> <li>ノーマル</li> <li>いろはに</li> <li>ほへと</li> <li>ちるぬるを</li> <li>わかよたれそ</li> <li>つれならむういのおくやまけふこえてあさきゆめみしえひもせすん</li> </ul> <ul class="list2"> <li>ぶら下がり</li> <li>いろはに</li> <li>ほへと</li> <li>ちるぬるを</li> <li>わかよたれそ</li> <li>つれならむういのおくやまけふこえてあさきゆめみしえひもせすん</li> </ul>
.list,.list2{list-style:none;}
.list li:first-child:before,
.list2 li:first-child:before{content:"";}
.list li:before,.list2 li:before{
content:"-+--|";
}
.list2{margin-left:3em;}
.list2 li:before{margin-left:-3em;}liの疑似クラスbeforeにcontentで文字表示させて、それをマーカーっぽく見せてる
文字だから勿論綺麗に並ぶ
そのままだと2行になった時にマーカーの下に折り返すので、li:beforeに文字マーカー分のネガティブマージン(『margin-left:;』)、ulにその分のプラスマージンを指定する
こうするとぶら下がりになる
<ul class="dehulo"> <li>デフォルト:outside</li> <li>いろはに</li> <li>ほへと</li> <li>ちるぬるを</li> <li>わかよたれそ</li> <li>つれならむ<br> ういのおくやまけふこえて</li> </ul> <ul class="uti"> <li>内側:inside</li> <li>いろはに</li> <li>ほへと</li> <li>ちるぬるを</li> <li>わかよたれそ</li> <li>つれならむ<br> ういのおくやまけふこえて</li> </ul>
ul li:nth-child(1){list-style:none;}
.dehulo{list-style-position : outside;}
.uti{list-style-position : inside;}リストマーカーの位置そのものはpassingやら駆使してもらうとして、文字が2行になった時にマーカーの横のままにするか、マーカーの下に折り返すのかを指定できる
・・・ナニコレ使わなそう
list-style-position CSSプロパティ「list-style-position」の解説とサンプル。引用
<p class="em05">letter-spacing(文字間隔)<br> 文字間隔0.5em、つまりは1文字半分分</p> <h3 style="margin:0;margin-top:50px;">overflow(ボックス内表示)</h3> <div class="over"> <div class="defo"> visible デフォルト<br> 中身が外にはみ出て表示される(IEだとボックスが伸びる<br> </div> <div class="suku"> scroll スクロールバーが発生<br> overflow-y(縦)とかx(横)とかで指定することが多い<br> 更新履歴とかによく使う </div> <div class="kie"> hidden 消える ボックス外まで文字が伸びたらもれなく消えるし何処にも出てこない<br> その特性利用してなんかようわからんところでよく使われてる </div> <div class="auto"> ブラウザの基準に合わせる<br> 大抵はスクロールバーっぽい </div> </div> <h3 style="margin:0;margin-top:50px;">word-break(改行)</h3> <div class="break"> <div class="ver0">normal<br> いろはにほへとSAN値直葬、若よ誰ぞTUNENARAMU、Wii no wow kuu yammer '後京都' The unexpected me longer translated. </div> <div class="ver1">keep-all<br> いろはにほへとSAN値直葬、若よ誰ぞTUNENARAMU、Wii no wow kuu yammer '後京都' The unexpected me longer translated. </div> <div class="vwr2">loose<br> いろはにほへとSAN値直葬、若よ誰ぞTUNENARAMU、Wii no wow kuu yammer '後京都' The unexpected me longer translated. </div> <div class="ver3">break-strict<br> いろはにほへとSAN値直葬、若よ誰ぞTUNENARAMU、Wii no wow kuu yammer '後京都' The unexpected me longer translated. </div> <div class="ver4">break-all<br> いろはにほへとSAN値直葬、若よ誰ぞTUNENARAMU、Wii no wow kuu yammer '後京都' The unexpected me longer translated. </div> </div> <p style="margin:0;">多分これnormalかbreak-allで使い分ければいいと思う(死んだような目</p>
.em05{letter-spacing:0.5em;}
.over{width:608px;}
.over:after{
content:"";
clear:both;
height:0;
display:block;
visibility:hidden;
}
.over div{width:150px;height:70px;border:solid 1px #ddd;float:left;}
.over .defo{overflow:visible;}
.over .suku{overflow:scroll;}
.over .kie{overflow:hidden;}
.over .auto{overflow:auto;}
.break{width:689px;}
.break:after{
content:"";
clear:both;
height:0;
display:block;
visibility:hidden;
}
.break div{width:100px;padding:3px;margin-left:20px;border:solid 1px #ddd;float:left;}
.break .ver0{word-break:normal;}
.break .ver1{word-break:keep-all;}
.break .ver2{word-break:loose;}
.break .ver3{word-break:break-strict;}
.break .ver4{word-break:break-all;}letter-spacingに数値を指定することで文字同士の間隔を空ける
pxなどで指定してもいいが、『0em』が文字1文字分の基準として指定したほうが後々楽
<h3 style="margin-top:50px;"></h3> <table class="font"> <tr> <th colspan="4" >font-weight</th> </tr> <tr> <td>normal(通常)</td> <td>bold(太字)</td> <td>lighter(1段細字)</td> <td>bolder(1段太字)</td> </tr> <tr> <td class="bol1">normal</td> <td class="bol2">bold</td> <td class="bol3">lighter</td> <td class="bol4">bolder</td> </tr> </table> <p style="margin:0;">多分これnormalかbold(ry</p> <h3 style="margin-top:50px;"></h3> <table class="deco"> <tr> <th colspan="5" >text-decoration</th> </tr> <tr> <td>none(デフォルト)</td> <td>underline(下線)</td> <td>overline(上線)</td> <td>line-through(打消し)</td> <td>blink(点滅)</td> </tr> <tr> <td class="dec1">none</td> <td class="dec2">underline</td> <td class="dec3">overline</td> <td class="dec4">line-through</td> <td class="dec5">blink</td> </tr> <tr> <td class="dec6" colspan="3">こういうこともできる</td> <td class="dec7" colspan="2">こういうこともできる</td> </tr> </table>
.font{width:700px;}
.font tr td{text-align:center;}
.bol1{font-weight:normal;}
.bol2{font-weight:bold;}
.bol3{font-weight:lighter;}
.bol4{font-weight:bolder;}
.deco{width:800px;}
.deco tr td{text-align:center;}
.dec1{text-decoration:none;}
.dec2{text-decoration:underline;}
.dec3{text-decoration:overline;}
.dec4{text-decoration:line-through;}
.dec5{text-decoration:blink;}
.dec6{text-decoration:underline overline;}
.dec7{text-decoration:underline line-through;}<div class="flodel"> <div>一番目</div> <div>二番目</div> </div>
.flodel:after{
content:"";
clear:both;
height:0;
display:block;
visibility:hidden;
}
div div{
width:100px;
height:100px;
float:left;
} CSS3から疑似要素は疑似クラスと区別するために『::after』という使い方にもなってるけど、IE8含む以前のみは対応してないのでもう暫く1つで使うのが無難
IE7含むそれ以下のバージョンに対応してなくてもよければ下記でもおk
.flodel:after {
display:block;
clear:both;
}<div class="txtdel"> 例えばこうして文字を画像で表示する場合、 SEO対策としてタグ内にも文字を書くが それが見えないようにするための指定になる </div> <div> 勿論何も指定しなければ、画像は背景なので文字が表示されてしまう </div> <div class="txtdel"> ちなみにbrタグを中で使用した場合、<br> この様にbr使用後の文字は見えてしまう </div>
.txtdel {
text-indent:100%;
white-space:nowrap;
overflow:hidden;
}
div{
width:265px;
height:55px;
background:url(img/bunsyou.png) no-repeat;}特に難しいことはしてない
上記をCSSに書いておいて、classで消したいタグに反映させればおk
text-indent:-9999pxでテキスト飛ばさなくてもテキスト非表示にして画像に置換できる方法 | delaymania引用