0

スージーをCodekitで実行した後、私はようやくもっと徹底的に試すことができました。私はグリッド全体とスージーのことから始めています。そこで、運動目的で構築しようとしている最近のWebサイトのデザインにSusyグリッドを適用しようとしました。しかし、Susysの動作と、Susyホームページのシナリオでカバーされていないいくつかのエッジケースのベストプラクティスについて、かなりの数の質問が発生しました。私のマークアップは次のようになります。

<div class="wrapper">

    <header role="banner">
        <div class="finish"></div>

        <a href"/"><a>
        <nav role="navigation">
            <ul>
                <li><a href="#kunden"></a>Kunden</li>
                <li><a href="#projekte"></a>Projekte</li>
                <li><a href="#leistungen"></a>Leistungen</li>
                <li><a href="#agentur"></a>Agentur</li>
                <li><a href="#kontakt"></a>Kontakt</li>
            </ul>
        </nav>
    </header>

    <aside class="intro testcol">
        <h3>Headline 3</h3>
        <p>Ferferiandus ma plibus voluptas assi dis peria conectati dus que mi, sundae seque maximod ipsunt ut opta eture sus dit, nos iligentiis rentin res quam dendi officiae quas esequam, volup- tibea sit, simpore pedis eum explani magnatu mquias dolorio cus aut modolectur sequis nullescid ut veni doluptaturem dolorupit estorpo raectatus.</p>
    </aside>

    <section name="projekte" class="test" role="main">
        <hgroup>
        <h1>Unsere Projekte</h1>
            <h2>Subtitle</h2>
        </hgroup>

        <ul class="moodlegrid">
            <li><a href=""></a><img class="projekteimage" title="Projekte" src="img/projekte.jpg" alt="Projekte" width="275" height="178" /></li>
            <li><a href=""></a><img class="projekteimage" title="Projekte" src="img/projekte.jpg" alt="Projekte" width="275" height="178" /></li>
            <li><a href=""></a><img class="projekteimage" title="Projekte" src="img/projekte.jpg" alt="Projekte" width="275" height="178" /></li>
            <li><a href=""></a><img class="projekteimage" title="Projekte" src="img/projekte.jpg" alt="Projekte" width="275" height="178" /></li>
            <li><a href=""></a><img class="projekteimage" title="Projekte" src="img/projekte.jpg" alt="Projekte" width="275" height="178" /></li>
            <li><a href=""></a><img class="projekteimage" title="Projekte" src="img/projekte.jpg" alt="Projekte" width="275" height="178" /></li>
            <li><a href=""></a><img class="projekteimage" title="Projekte" src="img/projekte.jpg" alt="Projekte" width="275" height="178" /></li>
            <li><a href=""></a><img class="projekteimage" title="Projekte" src="img/projekte.jpg" alt="Projekte" width="275" height="178" /></li>
            <li><a href=""></a><img class="projekteimage" title="Projekte" src="img/projekte.jpg" alt="Projekte" width="275" height="178" /></li>           
        </ul>
    </section>
</div>

これは次のことにつながります(私のステータスのため、まだ画像を投稿することは許可されていませんが、この場合は必須なので、直接リンクを配置しました):

https://dl.dropbox.com/u/8578/sample.png

したがって、divはページのコンテンツをラップしています。ヘッダーにはロゴ(下のスクリーンショットには表示されていません)とナビゲーションが付いています。次に、その灰色のボックスが浮いているための脇の要素があります。いくつかのセクション(レジスターカードなど)の下に配置されます。スクリーンショットには部分的に1つだけ含めています。各レジスタカードは、画面を全幅で覆う必要があります。各レジスターカードの間に、背景画像が透けて見えます。背景画像は@includebackground-size(cover)で配置されます。各レジスターカードの補足として、左右にそれぞれ約10%のブリードがあるはずなので、コンテンツは中央の80%にしか含まれていません。また、各セクションのコンテンツ領域には、liのマトリックス(上記のhtmlコードのように)またはコンテンツのdivを配置する1〜3の列が含まれています。私がこれまでに使用したcssのいくつかの部分:

$base-font-size: 17px;
$base-line-height: $base-font-size * 1.5;

$total-columns: 20;
$column-width: 4em;
$gutter-width: 1em;
$grid-padding: $gutter-width;

@mixin bleed($padding: $grid-padding, $sides: left right) {
    @if $sides == 'all' {
        margin: - $padding;
        padding: $padding;
    } 
    @else {
        @each $side in $sides {
            margin-#{$side}: - $padding;
                padding-#{$side}: $padding;
            }
        }
}

* { 
    @include box-sizing(border-box);
}

body {
background: url('../img/body-bg.jpg') no-repeat center center fixed;
@include background-size(cover);
color:#333;
padding:0;
margin:0;
width: 100%;
font-size: $base-font-size;
font-family: "Signika", Georgia, serif;
@include establish-baseline;
}

.wrapper {
    width:100%;
    @include container;
    @include susy-grid-background;
    @include bleed;
}

最後のラッパー内には、脇とセクションがあります。基本的な質問は次のとおりです。

a)最初にベストプラクティスに関する一般的な質問。説明した例では、ラッパーdivに1つのコンテナーを配置するだけで十分ですか、それとも複数のコンテナーを作成して、ドキュメント全体に配置した場合にそれらのコンテナーを相互に整列させる方がよいでしょうか。すべてに1つのコンテナ、またはヘッダーに1つのコンテナ、aside要素に1つ、各セクションに1つのコンテナのいずれかを意味しますか?

b)脇の要素のためのコンテナを作成することは思慮深いでしょうか。左側の1列のコンテンツ領域で1回ブリードし、右側で1回ブリードすることを意味しますか?それとも、その場合にコンテナを使用することは不利ですか?

c)セクションを見ると、基本的に、セクションを画面の幅全体に塗りつぶし、両側にx列のブリード(pad()?で配置)を配置し、中央に「コンテンツ」を配置することは可能です。 x列に分割された領域(スパン列を含む)。

d)スクリーンショットに見られるように; 各セクションの上部には、互いに向き合う2つの矢印があります。各矢印は、テキストを含むコンテンツボックスと、三角形と長方形を含む前後の疑似クラスで構成されます。後者は、画面の両側まで伸びる必要があります。各要素を列内に配置することで、レスポンシブなcssのみのソリューションを取得することは理にかなっており、可能でしょうか。

col1 col2 col3col4col5長方形の内容三角形の内容長方形の左右

100%の幅を割り当てることにより、各要素は、応答性を保ちながら、それが含まれる列の全幅を埋める必要があります。そして、このアイデアがうまくいく可能性がある場合は、セクションごとに2つのコンテナを作成する必要がありますか(矢印用に1つ、下にブリードがあるコンテンツ用に1つ)、または1つで十分ですか?

e)最後の質問はアプリケーションについてです。私が使用する場合:

.moodlegrid li{
    @include column-count(3);
    @include column-gap(1em);
    @include inline-list;
    }

最初からスクリーンショットのように見えます。Susyミックスインを使用すると、次のようになります。

.moodlegrid li{
    @include span-columns(4,12);
    @include span-columns(4,12);
    @include span-columns(4 omega,12);
    @include inline-list;
    }

結果は次のようになります。

https://dl.dropbox.com/u/8578/result2.png

さて、今のところは以上です。私はまだ少し混乱していて、ベストプラクティスについて、またこれまでのところすべてを順調に行っているかどうかについて確信がありません。;)ヒントや提案をいただければ幸いです。よろしくお願いしますラルフ

4

1 に答える 1

1

a)可能な場合は1つのコンテナーを使用しますが、場合によっては複数のコンテナーが役立つ(そして整列する)場合があります。

b)質問がわかりません。単にsquish()左右にスペースを追加するために使用します。

c)あなたが何を求めているのかわかりません。はい、要素を全画面に表示することができます。これを行うには、構造要素内で複数のコンテナーを使用するか(1つですべてをラップするのではなく)、またはの値を非常に大きくしますbleed。それはあなたが意味することですか?

d)一方の左側ともう一方の右側に大きなブリードを追加するだけです。次に、三角形に生成されたコンテンツを使用します。画面の端に反応するためにブリードを必要としません。その端をオーバーフローoverflow-x: hidden;させ、スクロールバーが表示されないようにするために必要な場所に追加するだけです。

e)このコードは意味がありません。多分あなたはこれが欲しかったですか?

.moodlegrid li {
  @include span-columns(4,12);
  @include nth-omega(3n);
}

それでも、フロートの清算や証拠金の崩壊など、関係のない問題が発生している可能性があります。

将来的には、それぞれの質問を個別に行い、それぞれに固有のコード例を作成すると、大きくて複雑な1つの例と一緒にまとめるのではなく、役立ちます。これは、問題を自分でデバッグするのにも役立ちます。問題を単純化して管理しやすくしてから、さまざまなアイデアを試してみてください。

于 2012-09-30T06:28:38.143 に答える