nowrapを加えます
<td nowrap>hogehoge</td>
nowrap追加前
nowrap追加後
2~3日、ずっと悩んでました。。
ソフトウェアエンジニアの技術ブログ:Software engineer tech blog
随机应变 ABCD: Always Be Coding and … : хороший
nowrapを加えます
<td nowrap>hogehoge</td>
nowrap追加前
nowrap追加後
2~3日、ずっと悩んでました。。
1.table tdのcssは
td { write something; }
2. table td にclassを付けた場合
例
<td class="selected">hoge</td>
cssは、
td.selected { write something; }
3.table tdの中にlink(aタグ)のcss
td a{ write something; }
4.table classを付けたtdの中のlink(aタグ)のcss
<td class="selected"><a href="?param=hoge">foo</a></td>
cssは
td.selected a{ write something; }
下のキャプチャのように、classをつけているtdの中のaタグのcolorを#fffにできました。
初期画面
<style> #tbl-bdr table,#tbl-bdr td,#tbl-bdr th { border-collapse: collapse; border: 1px solid #000000; } table td{ width:45px; } </style> <br> <div id="tbl-bdr"> <table> <tr> <td></td><td>9:00</td><td>9:30</td><td>10:00</td><td>10:30</td><td>11:00</td><td>11:30</td><td>12:00</td><td>13:00</td><td>13:30</td><td>14:00</td><td>14:30</td><td>15:00</td><td>15:30</td><td>16:00</td><td>16:30</td><td>17:00</td> </tr> <tr> <td>松島</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td> </tr> <tr> <td>小野</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td> </tr> <tr> <td>草野</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td> </tr> </table> </div>
テーブルはできたんですが、ここからどうすればいいのでしょうか?
セル毎にデフォルトは〇、if文でその時間帯が開始時間と終了時間の間であれば×を計算でしょうか。
いや、予約が入っているところだけ、計算した方が速いような気がします。
なんか凄い難しいぞ。
あ、仮置きで、9:00->a 9:30->b, 10:00->c, 10:30->d .. として、aが〇か×か判定の判定をfor文で回せばいいのでしょうか? いや、for文で回すと$iと$jを入れ子で回すので、担当者のid(テーブル)を作る必要がありそうです。
あ、こういうことですかね?
$timelist = array(540, 570, 600, 630, 660, 690, 780, 810, 840, 870, 900, 930, 960, 990, 1020); for($i=0; $i < count($timelist); $i++){ if($timelist[$i] >= $result[0]['time1'] and $timelist[$i] < $result[0]['time2']){ echo "予約あり<br>"; }else{ echo "予約なし<br>"; } }
小野:10:00~11:00 (60分)
予約なし
予約なし
予約あり
予約あり
予約なし
予約なし
予約なし
予約なし
予約なし
予約なし
予約なし
予約なし
予約なし
予約なし
予約なし
修正します。
$timelist = array(540, 570, 600, 630, 660, 690, 780, 810, 840, 870, 900, 930, 960, 990, 1020); $list = array("予約可","予約可","予約可","予約可","予約可","予約可","予約可","予約可","予約可","予約可","予約可","予約可","予約可","予約可","予約可","予約可"); foreach($result as $value){ for($i=0; $i < count($timelist); $i++){ if($timelist[$i] >= $value['time1'] and $timelist[$i] < $value['time2']){ $list[$i] = "×"; } } }
a little close?
更に修正
まず初期画面
mobileの場合は、1カラムで表示させたい。
amazonトップページのソースからcssを見るとどうやら、768pxと979pxで切り分けているので、メディアクエリ@mediaはひとまず768pxしたいと思います。
https://www.amazon.co.jp
@media (max-width:767px){.a-visible-phone{display:inherit!important}.a-hidden-phone{display:none!important}.a-hidden-desktop{display:inherit!important}.a-visible-desktop{display:none!important}}@media (min-width:768px) and (max-width:979px){.a-visible-tablet{display:inherit!important}
max-width:767pxの時は、float:leftとfloat:rightを解除します。
@media screen and (min-width: 767px) { #content{ width:800px; margin:10px auto; } fieldset{ border:1px #C0C0C0 solid; } h1 { display:inline; } #img { height:28px; } .form1{ margin-top: 1em; padding: .5em; size:80; } .submit1{ margin-top: 1em; padding: .3em; } #owner{ width:52%; float:left; } #map{ width: 45%; float:right; height: 200px; } } @media screen and (max-width: 767px) { #content{ width:75%; margin:5px auto; } fieldset{ border:1px #C0C0C0 solid; } h1 { display:inline; font-size:18px; } #img{ height:18px; } .form1{ margin-top: 1em; padding: .5em; size:25; } .submit1{ margin-top: 1em; padding: .3em; } #owner{ width:99%; } #map{ width: 99%; margin-top:5px; height: 200px; } }
一応、レスポンシブルになりました。
min768px
max767px
戦後のスカイラインのデザインはかっこよかったが、やはり、デザインはその時の時代背景が出ますね。。
<style> .submit1 { height:30px; margin-top:5px; padding-right:15px; padding-left:15px; background-color:#0099FF; color:#fff; border:0px; } .submit1:active { -ms-transform: translateY(2px); -webkit-transform: translateY(2px); transform: translateY(2px); border-bottom: none; } .form2{ height:30px; } textarea{ padding-top:5px; } </style> <form action="?compose=done" method="post" enctype="multipart/form-data"> <br> <input type="text" class="form2" name="to" size="80%" value="<?php echo $to; ?>" placeholder=" 宛先 ※必須" required><br> <br> <input type="text" class="form2" name="subject" value="<?php echo $subject; ?>" placeholder=" 件名" size="80%"><br> <br> <textarea placeholder=" メッセージを入力してください ※必須" name="body" rows="12" cols="82%" required></textarea> </p> <input type="file" id="files" name="files[]" multiple /> <div id="caution"> ※送信できるファイルの拡張子は"gif","jpg","jpeg","png"の何れかです。<br> ※ファイル送信は最大2つまでです。3つ以上選択しても、3つ目以降は送れません。また、二つのファイルを送信する場合は、キーボードの"ctl"ボタンなどで二つ選択した状態で開いてください。</div> <output id="list"></output> <p> <input type="submit" class="submit1" value="送信"> </form>
なんか、hrがしょぼいですな。。
あ、hrもcssでスタイリングできるんですね♪
hr{ height: 2px; background-color: #F8F8FF; color: #F8F8FF; }
割といい
headerをつくっていきます。
.header-wrap{ background-color:#222222; margin-bottom:10px; } .title-wrap{ display:inline-block; vertical-align: bottom; } .title-wrap h1 { font-size:23px; padding-top:0px; padding-left:15px; margin-bottom:0px; color:#fff; } .title-wrap h2 { font-size:14px; margin-top:0px; padding-left:15px; padding-bottom:5px; color:#fff; } .out { display:inline; vertical-align: bottom; font-size:12px; float:right; padding-top:15px; padding-right:15px; color:#fff; }
もう少し細くします。
flex-1, flex-2にヘッダーをつけます。
.side{ height:12px; background-color:#E6FFE9; } .main{ height:12px; background-color:#F5FFFA; }
ul, li要素のlist-styleをnoneにします。
ul{ list-style:none; } li{ margin:7px; }
まぁまぁOK
ログアウト画面の表示
<?php require("auth.php"); $auth = new Auth(); $auth->logout(); ?> お待ちください... <script> setTimeout(function(){ window.location.href = "login.php"; }, 600); </script>
gmailと一緒で、特にスタイリングはなしでOKですね。settimeは600msくらいにしておきます。
さあ、次は、form周りでしょうか。
inlineでやりたいところですが、複数のHTMLファイルに対して共通のCSSを適用するため、外部にフォルダを作成し、そこに入れて読み込むことが一般的かと思います。
<link rel="stylesheet" type="text/css" href="asset/css/styles.css" />
多数の人間が制作に関わった場合などは、パーツによって、このclassはxxx.cssファイル、このidはyyy.cssファイルを読み込む、など、1つのページでも複数のcssファイルを読み込むことがあります。
問題は、大規模サイトで、CSSファイルを5~6個位読み込んでいて、後からチームにジョインした人が改修しようとした際に、それぞれ書き方も別々の為、なにがなんだかわからなくなる、ということがあります。
そこで、コーディングガイドラインを作成しようとなります。
では、Googleのコーディングガイドラインをみてみましょう。
– Not reccomended
<!DOCTYPE html> <title>HTML sucks</title> <link rel="stylesheet" href="base.css" media="screen"> <link rel="stylesheet" href="grid.css" media="screen"> <link rel="stylesheet" href="print.css" media="print"> <h1 style="font-size: 1em;">HTML sucks</h1> <p>I’ve read about this on a few sites but now I’m sure: <u>HTML is stupid!!1</u> <center>I can’t believe there’s no way to control the styling of my website without doing everything all over again!</center>
-recommended
<!-- Recommended --> <!DOCTYPE html> <title>My first CSS-only redesign</title> <link rel="stylesheet" href="default.css"> <h1>My first CSS-only redesign</h1> <p>I’ve read about this on a few sites but today I’m actually doing it: separating concerns and avoiding anything in the HTML of my website that is presentational. <p>It’s awesome!
外部ファイルは一つにして、そこから読み込むことが推奨されています。その他も参考になります。
https://google.github.io/styleguide/htmlcssguide.html#CSS_Style_Rules
まず、スタイリングしていない状態です。
<body> <form action="/" name="search1" method="post"> <dl class="search1"> <dt><input type="text" name="search" value="" placeholder="Search"></dt> <dd><button>Search</button></dd> </dl> </body>
<style> dl.search { position:relative; } dl.search dt{ margin-right:105px; padding:8px; background-color:#fff; border:1px solid #aaa; } dl.search dd{ position:absolute; top:0; right:0; } dl.search dt input{ width:100%; height:24px; line-heigh:24px; background:none; border:none; } dl.search dd { position:absolute; top:0; right:0; } dl.search dd button{ display:block; width:100px; height:42px; color:#fff; line-height:40px; text-align:center; background-color:#f66; border:1px solid #c66; } </style>
css trigger
https://csstriggers.com/
var isSetup = setupVariables(e); if(isSetup){ setInterval(captureFrame.bind(self), 4); } else { setTimeout(function(){ setupVariables(e); setInterval(captureFrame.bind(self), 4); }, 100); }
var captureFrame = function(){ canvas.drawImage(cameraVideo, sx /scaleFactor, sy/scaleFactor, sWidth/scaleFactor, sHeight/scaleFactor, dx, dy, dWidth, dHeight); drawOverlay(dWidth, dHeight, scaleFactor); if(self.onframe) self.onframe(); coordinatesHaveChanged = false; };
gulp serve command
[vagrant@localhost qrcode]$ gulp serve [21:54:17] Using gulpfile ~/webapp/app/qrcode/gulpfile.js [21:54:17] Starting 'styles'... [21:54:18] styles all files 26.07 kB [21:54:18] Finished 'styles' after 1.46 s [21:54:18] Starting 'serve'... [21:54:19] Finished 'serve' after 505 ms [WSK] Local URL: http://localhost:3000 [WSK] External URL: http://10.0.2.15:3000 [WSK] Serving files from: .tmp [WSK] Serving files from: app
<style tyle="text/css"> .container { width: 100%; display: flex; flex-wrap: wrap; } .box {width: 150px;} </style>
column drop, off canvas, layout shifter, mostly fluid