ウェブDeBLOG | トライデントコンピュータ専門学校 Webデザイン学科

トライデントコンピュータ専門学校 Webデザイン学科の最新情報を紹介しています。学生へのインタビュー記事から学生作品の解説、Webデザイン・マークアップ・プログラミングの授業風景、プロジェクト発表会、名古屋のWeb制作会社情報、イベント参加レポートやWeb制作の技術解説などWeb制作に関連する記事を掲載しています。トライデントコンピュータ専門学校は、いま話題の名古屋駅からユニモール地下街を歩いて3分です。 

2018.02.25 [日] CSS Grid Layoutの時代がやってくる。[その1]

最終更新:2018.03.26Webサイト制作Tips

まだまだ寒い日が続きますが、もう暦の上では春ですね。
講師のカワグチです。暖かくなってくると花粉が心配ですが、それでも春は待ち遠しいですね。

2年前の年末に「そろそろFlexboxを勉強し始めてもいいんじゃないだろうか」という記事を書いて、WebサイトのレイアウトにCSS Flexboxの考え方をまとめました。

grid2018_003.jpg

最近では、学校の授業でも、CSSでのレイアウトは、floatを使うよりもFlexboxを利用することを推奨しています。ところが、そんな話もつかの間、そろそろGrid Layoutが使えると言うことで、調べてみました。

gridlayout_001.jpg

参照:Can I use... Support tables for HTML5, CSS3, etc

Internet Explorer11のみベンダープレフィックス-ms-が必要で、他のモダンブラウザ(Chrome, Firefox, Safari, Edge)の最新版では対応済みです。

StatCounter Global Stats調べでは、日本でのInternet Explorer11のシェアは、iPhoneのSafariに次いでの15.61%(2018年2月現在)です。

gridlayout_002.jpg

スマートフォンやモダンブラウザを対象とするのであれば、Grid Layoutを検討しても良いわけです。

CSS Grid Layoutとは

現在、W3Cでは勧告候補となっています。

Abstract
This CSS module defines a two-dimensional grid-based layout system, optimized for user interface design. In the grid layout model, the children of a grid container can be positioned into arbitrary slots in a predefined flexible or fixed-size layout grid.

このCSSモジュールは、ユーザーインターフェイスの設計に最適化された2次元グリッドベースのレイアウトシステムを定義します。グリッドレイアウトモデルでは、グリッドコンテナの子を、あらかじめ定義されたフレキシブルまたは固定サイズのレイアウトグリッド内の任意のスロットに配置できます。

いつもの通り、W3Cの仕様書を調べてみました。

floatやFlexboxは、縦の軸もしくは、横の軸のどちらかの定義でしたが、CSS Gridは両方とも(2次元)を定義することができます。まずは、横並びをの方法をFlexboxと比べてみましょう。

Flexbox


ul{
    display:flex;
}

li{
    width: 25%;
}

表示は、

  • Nav1
  • Nav2
  • Nav3
  • Nav4

Grid Layout

このdisplay:flexで定義された親要素をFlex container (Flex コンテナ)、子要素をFlex item (Flex アイテム)と呼びますが、Grid Layoutでも同じようにdisplay:gridで定義された親要素を Gid container(Grid コンテナ)、子要素をGrid item(Grid アイテム)と呼びます。

gridlayout_003.jpg

Grid column(列)

grid-template-columnsでGrid colimn(列)の数、それぞれに値を設定すれば、横に並びます。今回は4つの<li>がありますので、それぞれ25%に設定しました。

gridlayout_004.jpg
ul {
    display: grid;
    grid-template-columns: 25% 25% 25% 25%;
 }

表示は、

  • Nav1
  • Nav2
  • Nav3
  • Nav4

では、<li>要素は4つですが、3つだったらどうなるでしょうか?

ul {
    display: grid;
    grid-template-columns: 25% 25% 25%;
 }
  • Nav1
  • Nav2
  • Nav3
  • Nav4

となります。

grid-template-columnsなどでグリッドを定義する時、Grid lineではなくGrid Trackを定義することになります。
上記では、3つ定義されていますので、残りの1つは次の行に配置されます。
定義されたGrid cellは、グリッド上の最も小さな単位となります。考え方としては、表のセルのようなものになります。

gridlayout_005.jpg

columnの長さを表す単位は、%の他pxなども利用できますが、frという新しい単位も使えます。

fr単位

Grid container内の利用可能な空間の分数を表します。frで表した空間を全て足して、その分数ということになります。

ul {
    display: grid;
    grid-template-columns: 25% 1fr 1fr 25%;
 }

表示は、

  • Nav1
  • Nav2
  • Nav3
  • Nav4

Grid gap

Grid cellの間隔は、grid-column-gapおよびgrid-row-gapプロパティを使用するか、grid-gapとショートハンドでも設定できます。

gridlayout_007.jpg
ul {
    display: grid;
    grid-template-columns: 25% 1fr 1fr 25%;
    grid-column-gap: 10px;
 }

表示は、

  • Nav1
  • Nav2
  • Nav3
  • Nav4

間隔が優先的に確保され、残りの領域をGridで分割します。

Grid rows(行)

今度は、縦に並べてみましょう。Flexboxでは、

ul{
    display: flex;
    flex-direction:column;
}

と書きます。Grid Layoutでは、grid-template-rowsを設定します。

gridlayout_006.jpg
ul{
    display: grid;
    grid-template-rows: 1fr 1fr 1fr 1fr;
}
li{
    padding: 1em 0;
    text-align: center;
    margin-bottom: 0;
}

Grid itemの<li>要素に高さは必要です。
表示は、

  • Nav1
  • Nav2
  • Nav3
  • Nav4

とりあえず、横と縦の一方向(一次元)のGrid Leyoutでの配置はわかりました。
しかし、このような配置はFlexboxでも可能で、手間もそれほど変わりません。

Grid itemの配置を指定する

グリッドを定義する事でGrid itemをグリッドのどのエリアに配置するのかを指定することができます。

Grid lineの番号で指定する

Grid lineの番号でどこに配置するか、指定する事ができます。
column(列)の始まりをgrid-column-startで設定します。


gridlayout_008.jpg
ul {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-template-rows: 1fr 1fr 1fr;
 }
li.nav1 {
   grid-column-start: 3;
}

grid-row-startでは、row(行)の位置を設定できます。grid-rowが指定されたGrid itemの後の要素は、開始位置に移動します。
この部分が、grid-columnと違います。

ul {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-template-rows: 1fr 1fr 1fr;
 }
li.nav1 {
   grid-row-start: 2;
}

grid-colmun-endgrid-row-endを利用する事で、定義されたグリッド内のGrid item範囲が設定できます。

ul {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-template-rows: 1fr 1fr 1fr;
 }
li.nav1 {
  grid-column-start: 3;
  grid-column-end: 5;
  grid-row-start: 2;
  grid-row-end: 4;
}

grid-colmun-start,grid-colmun-endgrid-row-start,grid-row-endは、ショートハンドでそれぞれgrid-colmungrid-rowでも書けます。/(スラッシュ)で区切りstart/endを指定します。

li.nav1 {
  grid-column: 3/5
  grid-row: 2/4;
}

Grid LayoutはFlexbox,positionとの組み合わせで、まだまだ自由にGrid itemを操作する事ができるようです。
[その2]に続きます。

参考:CSS Grid Layout を極める!(基礎編) - Qiita
参考:CSS Grid Layout - CSS | MDN

関連記事
Comment







(編集・削除用)


管理者にだけ表示を許可
Trackback
https://tridentwebdesign.blog.fc2.com/tb.php/635-fee82085
検索フォーム
Yahoo!基金
台風21号で被災されたみなさま、また、北海道を震源とする地震で被災されたみなさまに、心からお見舞い申し上げます。
プロフィール

担当:Webデザイン学科+

名古屋駅から歩いて6分、トライデントコンピュータ専門学校のWebデザイン学科を紹介します。

トライデントロゴ

質問などはLINEでどうぞ。

友だち追加数
Instagram
Webデザイン学科実績
<プレゼン>
WCAN 2016 Springに参加してきました。
WCAN 2015 Winterに参加しました。
建設業入職者増加プロジェクトの発表会に参加
WCAN 2015 Summerに参加してきました。
WCAN 2013 Winterに参加
WCAN(秋)に参加しました。
無事、発表が終わりました【WordFes Nagoya 2013】
WCAN 2013 Summerに参加してきました。
WCAN 2011 Winter LT&LOGO
学生がライトニングトークで話しました。
<展示会>
1年生進級展「WWW(Welcome to Web World)」を開催しました。
1年生進級展「お母さんの2度見展」を開催中です。
「うぇ~~~~~~~ぶ2016」終了しました。ご来場ありがとうございました!
「うぇ〜〜〜〜〜ぶ!!」終了。ご来場ありがとうございました!
<コンテスト>
「第1回 専門学校 HTML5作品アワード」技術賞を受賞しました!
NCF2017でグランプリを受賞しました!
信州アプリコンテスト0 [ゼロ] KDDI賞受賞!
NCF2014(スマホアプリ開発テーマ2) 準グランプリ獲得!
最優秀賞!HTML5スマートアプリ&クリエイティブコンテスト
NCF2013グランプリ受賞!!!
<Webサイト制作>
ミス・ユニバース・ジャパン岐阜大会公式Webサイトを作成しました。
建設業入職者増加プロジェクト発表会
Webサイト制作発表会2014
99eagle Webサイトリニューアル公開
99eagle Webサイト公開
「Bloom*Block」Webサイト公開
セントレア「日本の四季 キルト展」Webサイト公開
かっぱ商店街サイト制作
ココストア共同企画「アサココ!」公開
<技能五輪全国大会>
第56回技能五輪全国大会(ウェブデザイン職種)敢闘賞受賞!
第53回技能五輪全国大会(ウェブデザイン職種)その3
第52回技能五輪全国大会が開催されました。
銀メダル・銅メダル獲得【第51回技能五輪全国大会】
第49回技能五輪全国大会結果発表 敢闘賞受賞
第48回技能五輪全国大会結果発表(銀賞・敢闘賞受賞)
第47回技能五輪閉会式 & 結果発表
第46回技能五輪
<若年者ものづくり競技大会>
第11回若年者ものづくり競技大会 2日目&結果
第9回若年者ものづくり競技大会2日目(競技日)
第8回若年者ものづくり競技大会2日目
第7回若年者ものづくり大会
第6回若年者ものづくり大会2日目
第5回若年者ものづくり大会
第4回若年者ものづくり競技大会閉会式
タグリスト 改

トライデントコンピュータ専門学校Webデザイン学科WCAN業界研究技能五輪ウェブデザイン職種ウェブデザインWebサイト若年者ものづくり競技大会映画2013名古屋ポートフォリオECCコンピュータ専門学校学生ブログ2009WinterWebサイト制作WebデザインJavaScript技能五輪全国大会2011WordPressかっぱ商店街礒田優Wordpress2014入学式Nagoya矢野りんライトニングトーク卒業制作展a-blog1年生進級展アクアリングオープンキャンパスcmsWeb瀬川大勝ホームページ・ビルダーテンプレート作成CGイラスト学科若年者ものづくり大会アクセス解析AutumnSummer石黒雄介CSS面白法人カヤック大阪合同企業展体験入学minihtml5ウェブデザイン技能競技会HTML5in杉本拓也GIOIIJ卒展Flash2015卒業制作HCDあいちカレーラーメンコンテストAdobe名古屋駅第48回技能五輪全国大会Web制作会社20102012東京研修Japanココストアマールウェブデザイン技能検定CentOS北濱大輔サイバーエージェント学生インタビュー情報デザインブログパーツ佐藤歩愛知県gifアニメ成田篤紀Webデザインギャラリーdisplay:gridGridLayoutCSS3jQueryWebワークショッププレゼンテーションGoogleCOMMUNICATIONプロジェクト田中睦翔グリッドレイアウトセントレア水野裕太専門学校閉館日企業訪問学生2018上村水月ウェブデザイン技能競技大会99eagleBananaAdSpring情報デザインフォーラム人間中心設計ラーメンNEXTcanvasparticle幕張メッセビジュアルエディタPlugin就職活動textarea要素Analyticsoption要素select要素CMS林田実樹output要素長屋めぐみ会社訪問堀尾真衣スマホアプリ1年生作品展卒業式うぇーぶマークアップエンジニアメ~テレカリキュラムまぼろしYahoo!JapanSEO空気人形NTTドコモ東海産学協同カメラ5T(ファイヴティー)FICC名商連アンティー・ファクトリーAdventCalendarトライデントAWARD和み熊谷佳紀真鍋大度WEBサイト制作者のためのHCDの理解in名古屋戸田芳裕岩手県Likeレイアウト作品集知多みるく塚本碧WordFes中日ドラゴンズナゴヤドームイラストマップスマートフォンform要素コミュニケーションデザインワークショップたこ焼きモンキーワークス名古屋市科学館label要素結果発表愛知県選手団legend要素fieldset要素ワークショップBoxCSSNite静岡トライデント合同企業展笈瀬本通りUXForum写真阿部淳也ポートフォリオサイトinput要素iPhone企業課題アサココ!jbstyleWordCampStoreWebクリエイター能力認定試験サーティファイ初期設定夏季閉館日夏休み鈴木優太制作合宿導入授業Apple出張講座久保怜也F-site2017グループ制作豊田市美術館フォトアルバムMarkupRunstantWebデザイナー名古屋開府400年祭茂森仙直ディプロス2008鷹野雅弘進級展DTPWORLDWebリテラシー情報デザイン基礎学習沖縄謹賀新年株式会社LIG水野怜美トライデント祭りデザイナーのためのプログラミング入門名古屋メディアボンド金シャチ商店街アクセシビリティサーバー道頓堀IAYORKE.MAX細川太郎シナリオペルソナiPhone4広島弁柴乃櫂人1→10designPHPタロヲ造形基礎HTML+CSS基礎新世界商店街求人プロ野球unoplus佐藤可士和ポートピア名古屋フナ犬松坂屋美術館スタジオジブリ・レイアウト展TEXTUREサムライ知多半島CS4中村勇吾DesignデッサンWEBサイト制作者のためのHCDの理解技能五輪予選FLASHプロトコル分析伊藤頼子FLEXCollegeSakaeネスカフェゴールドブレンド大沢たかおNightビジュアルデベロップメントチタハン10丹下紘希Nam石井研二GoogleAnalyticsHPデザイン01横浜デジタルアーツデザインコンテストカメラワークArtlessCODEポスターデザイン・コンペティション小林信次増田悟Qubibi中部国際空港株式会社株式会社アクアリングブラザー工業株式会社CONTEST田中稚妃呂8341-3:2010XJISFLVFLAVER3.0カンファレンス名古屋市中村区ウェブリテラシー協会ウェブデザイン部門LoadLazy大西健太THEWEBSlimbox2for名古屋サイト改善研究会W+KTokyo(+CRUZ)ASIA笈瀬本通Videopuppetry名古屋クリエイターフットサルCODESIGGRAPHグラフィクデザインポスターデザイン・コンペディション名古屋グランパス鳥取AndrioidITCIRCUSアンドリュー・ワイエスWEBサイト制作者のためのHCD(人間中心設計)の理解デザイン鳥取砂丘ナゴヤXRAY2008WinterGAUltimateStefan愛知商業高校名チャリ中級編名駅経済新聞Sagmeister商店サイト制作WebDirectionEast'08みの治商店Twitter三蔵プチ・フレーズHelveticaデザインのへそ愛知県美術館広告批評ヤノベケンジウルトラ展カラーカスタマイズセミナーAutuminブランディング笈瀬本通商店街ストリートビュー黒い太陽ITホワイトボックスインターネットスキル認定普及協会PHP勉強会ライブペイント世界のCMフェスティバルJAPANインターネットクリエイティブアワードYahoo!CALENDARHCDプロセス□□□switch日本ファルコムゲーム山村浩二閉会式マクロマリオネット映画のオープニング音楽ファルコム音楽フリー宣言dotFes荒俣宏UNIQLOKyotowonderflゆるキャラFlash-Games大富豪スコアシート東京ゲームショウ2009カナバングラフィックス後期ウサビッチMozoramaアニメーションanimationescalator入賞ガンダムソバットシアターCMS特集アイディグラフィックス今井佳子グラフィックデザイン電信柱エレミの恋コマ撮りアニメ富岡聡モーション演習是枝裕和監督ActionScriptナゴヤデザインウィーク2009人喰いの大鷲トリコヱヴァンゲリヲン新劇場版:破国家検定西田幸司UNIQLOCK食品サンプル第4回アックゼロヨン・アワードCG・イラストコンテスト学科LPOギレン総帥旭食品サンプル製作所マークアップ演習デコクレウェブリテラシー協会第一回セミナーCOMPLETESalsa夢プロジェクト2009・成果報告会IA2010キックオフセミナーADVENTCHILDRENWasThere慶華飯店新横浜ラーメン博物館横浜中華街NIKEAndTokyoThenVII浜松武豊アニメーションフェスティバルTAFFWCAN×CSSNite名古屋おもてなし武将隊西村真里子ActionScript基礎プレゼン演習WCAN46学生参加FINALFANTASY餃子アートアニメーション福みつTAFF'09武豊町箱根合宿森川眞行スーパーエレメンツGENOウィルス山崎デザイン事務所長谷川恭久デュエル・マスターズヨウイチイラストコンテストセキュリティコピーライティングFITCCREAMごはんとFlashロゴ公募教育勉強会小野裕子#infoeduウェブDeBLOG情報デザイン教育勉強会横浜デジタルアーツ専門学校3校合同発表会UTZOOM日本電子専門学校鎌倉会社見学LabuatBlogクリ博就職フェスタおかだよういちペルソナ/シナリオ法ワークスコーポレーション「ヤノベケンジ-ウルトラ」展ペルソナ&シナリオ法浅野智武将都市メールマガジン合宿合同制作合同制作合宿専門士懇親会Web制作のおしごと原一浩坂本邦夫WebプログラマーWebディレクター学位出席率UIバイドゥ平野健太郎ポートフォリオアイデア帳仕事ワイヤーフレーム職業実践専門課程レスポンシブWebデザインウェブアートデザイナーうぇ~~~~~~~ぶ2016津田直明jsdo.itCodeplyPlunkerJSFiddle涼麺駅麺通りResurgenceDay:IndependenceクイズJSBinCodePenIA/UXプラクティス平野秀幸坂本貴史制作実績カークスヴィル沼田啓助プログラムクイズAO入試河地芳明採用担当者の心に響く高校夏麺フェア飯田淳介フロントエンドエンジニア木村哲朗竹中民男八木智章WebアクセシビリティVelocity.jsScrollMagicScrollmagicアップルップル森田霞WF1でBLOGインターンシップスマートフォンサイトUI図鑑CSS3&jQueryで作る新入生2015年度HighlighterSyntaxCrayonアクセシビリティからはじめる、WebサイトのUXデザイ建設経営者倶楽部源賢司UXデザインDmm.com岡田陽一アクティビティシナリオKaizen14グロースハッカーグロースハックPlatformFlexibleBoxFlexboxクリスマス熊﨑彩第53回ワクワク建設タウン東京コスモ3DCG味仙CGスペシャリスト松田洋樹プラネタリアン水曜日のカンパネラ安藤WebアプリNCF2017信州アプリコンテスト[ゼロ]志維堀川World)toWWW(Welcome友章アプリコンテストミス・ユニバース・ジャパン岐阜大会TableTOCAWARDS出身高校ofContentsフォントおじさん関口浩之堀川友章安藤志維北川パーヤンWebデザインスペシャルデーOculusVRカルタ東京ゲームショウ2018出前授業GO第56回srcsetsourcepicture沖縄県青山高校新城高校ホ・ジヘ韓国脆弱性なんと読む?期末テストHEOJIHYE冨田伴成イークリエイト藤井英一D3.jsスクラップブックドラマInstagramインスタグラム醐りょう料理芸大appendChild()HTMLCollectionNodeList美大いな世学生作品集ジムナストコロン日清食品グループタカガールサイトMonaca情報系驛麺通り再進学学園祭Webプログラミング初級講座マイクロソフト山川綾那鈴木雄太スタジオディテイルズ服部友厚株式会社エイチーム梅澤朝樹夏休みの課題ノートPC貸与尾鷲高校衣台高校佐藤洋介ターミナルES2015ES6ECMAScriptお母さんの二度見展SyntaxHighlighterv4.0.1学校ProxyWCAN2017Spring名古屋駅麺通りNCF2014Bloom*BlockBloosumTeamイマジンカップ尾花大輔第7回若年者ものづくり競技大会SHOWGAMETOKYO東京ゲームショウ2012NHNStationツインメッセ静岡静岡県ロゴマーク第56回技能五輪全国大会敢闘賞迎春Futuredocomoドコモ2011年度ベースキャンプ名古屋FacebookページみんなのICTウェブアクセシビリティモリサワFacebook佐藤ねじ東京プレゼンThree.js木下健太郎就職たこ焼きパーティWeb制作合宿結果長野IllustratorSVG第50回JQueryMuse画像をチェックボタンにする張山大祐Ohanaゲーム大賞アマチュア部門英国王のスピーチ卒業制作・研究発表会2011ぬいぐるみのラパンKtaistyleUntitled!!!!!!!!トライデントカレッジ伊達千代DTPの勉強部屋ablogcmsCustomSmilies絵文字中部国際空港GAINAXSUBARU放課後のプレアデス日本の四季キルト展円JOY!map卒業・修了制作展愛知県立芸術大学北岡弘至Magnumライアン・ウッドワードマーサ・グレアム5月11日Googleロゴプラネタリウム鈴木東京ゲームショウ神戸神戸国際展示場ゴールデンウィークGATEプロジェクションマッピングバルサマン3JAPANWORLDCUP恵那市岩村みつけものDRAGONドラゴンゲート愛知淑徳大学たにぐちまこと田代豊丸田屋丸高アロチ本家和歌山中華そば岩出本店スパルタキャンプ特別授業青空学区名古屋市営地下鉄柏木祥太熊野三山大門坂マカベン名古屋マークアップ勉強会tableテーブル熊野古道八鬼山那智の大滝本州最南端串本AOAnimationbutton要素datalist要素keygen要素optgroup要素HTML第52回技能五輪全国大会新年のご挨拶親孝行麺の匠オリエンタルtype属性紅茶専門店Liyn-an青山敬司山田拓生加藤ひとみ西岡克真結団式アイチータアイテムカンパニーネイルサロンマウア授業宇野剛志石原愛実麺やOK麺屋ココイチフジ家55さかなやカレーラーメン高橋雅人NTTドコモ東海支社NCF2013美術大学芸術大学晴れやか嵐が如くPerfumebyinspiredRhizomatiksPARTYそこにいない。展第51回技能五輪全国大会Webデザイン演習あいちトリエンナーレ2013list-style-typedisplayparseFloat()parseInt()Designergoogle備忘録栗山聡一ランチ中村健太道家陽介concrete5GWDF81教室KDDIHTML5スマートアプリ&クリエイティブコンテストモテ声ボーダーlist-itemジョルテ最優秀賞トライデント合同企業説明会10日でおぼえるLinuxサーバー入門教室卒業研究制作展キルターズフェスティバル2011

メールフォーム

名前:
メールアドレス:
件名:
本文:

東京コスモ
トライデントコンピュータ専門学校
教務課のびのび日記
Pagetop