Czy ramy CSS zło?

Original: http://webdesignernotebook.com/css/are-css-frameworks-evil/

Ramy CSS mają tendencję do być odwołani przez wielu autorów CSS; nadąć i nazwy kod semantyczny klasy nie są zwykle na szczycie listy powodów. Nawet nigdy nie przy użyciu jednego, podzieliłem tą opinię, ale to może się zmienić po wypróbowaniu kilku z nich się robiąc rozeznanie niedawno …

Istniejące ramy

Jest mnóstwo ram CSS tam, z prostszych rozwiązań, które dają jedynie układ do tych, które zawierają formularze, typografii i modułów układu płynu.

Z tego co mogę powiedzieć, projektantów i agencji, które działają z ram regularnie wydają się użyć Blueprint CSS lub 960 Grid System (często skracane do 960gs). Yahoo! YUI Kraty jest popularny. To były trzy szkielety eksperymentowałem z.

Uprzedzenia

Miałem ramy wszystko zorientowali się: były dla autorów CSS, którzy chcieli iść z prostych rozwiązań, a nie tworzyć własne fundacje CSS, lub dla tych, którzy tak naprawdę nie chcą zrozumieć, jak działa CSS – w zasadzie każdy, patrząc na łatwe rozwiązanie.

Jeśli jest jedna rzecz, nie lubię to puryści, którzy nie są otwarci na pomysły innych ludzi i że nie zmieni zdania. Kocham CSS i mogę być purist, w niektórych przypadkach, ale również zrozumieć, że nie wszystko może być idealne, a czasem arkusze stylów są niechlujnie. Wszyscy dążą do stworzenia pięknego, czystego kodu, który jest semantyczny i poprawny, ale podczas pracy na rzeczywistych projektów, które prowadzą aktualizowany, w przypadku gdy więcej niż jedna osoba w różnych czasach edytuje CSS, każdy z ich interpretacji “doskonałe” i z własnym różnym poziomie wiedzy i doświadczenia, wydajność zazwyczaj przeważa nad czystością kodu.

Ale błądzić. Co mam na myśli to, że czasami możemy użyć nie dziwne nazwy klasy semantycznej i ma szczeniaki umrze. To jest to, co ramy są często krytykowane za. Nazwy klas, takie jak “grid_16” lub “okres-8 ‘są dalekie od ideału, ale biorąc pod uwagę konieczność bycia dostosować do każdego rodzaju projektu, mają one sens (w większości przypadków co najmniej).

Te nie-semantyczne nazwy klas mogą być połączone z lepszych nazw identyfikatorów (takich jak “class =” obejmują-8 “id =” bok “”) lub, gdy przy użyciu HTML5, z semantycznych nazw elementów.

Chociaż starałem te ramy się, poprosiłem kilka pytań na Twitterze (głównie skarg, żeby być w porządku), i, choć nie jest to naukowo, że większość ludzi zdawała się ganić wykorzystanie ram. Wydaje mi się, ktoś nawet powiedział, że są “bezużyteczne”, i wiele więcej negatywnych komentarzy. Dwie lub trzy osoby powiedział, że korzystali z nich, choć i byli bardzo zadowoleni, że (opinie odbiegał od której).

Wireframing

Zawsze miałem pomysł, że ramy byłoby bardzo przydatne do tworzenia Szkielety w przeglądarce, tak aby było to, co postanowiłem powtórzyć z planu, 960gs i YUI 3 pól, przy użyciu bardzo prosty układ.

Plan

Ramy Blueprint CSS został stworzony przez Olav Bjørkøy i wydany w sierpniu 2007 roku. Zwykle jest uważany za najbardziej kompleksowe ramy CSS, ponieważ jest przeznaczony nie tylko do stworzenia układu opartego na sieci, ale zapewnia, i ma, solidne fundamenty typograficzny, biorąc pod uwagę aspekty jak pionowym rytmem. Zapewnia także reset i wydrukować arkusz stylów i podstawowe stylizacji dla formularzy.

 

 

Ramy używa domyślnie układ 24-kolumny (każda kolumna obejmuje 30 pikseli i ma prawego marginesu 10 pikseli), ale można tworzyć różne układy przy użyciu sprężarki zawarte w plikach.

Korzystanie Blueprint jest tak proste, jak w tym opakowaniu z klasą “pojemnika” otaczającej pozostałych bloków na stronie. W zależności od szerokości każdego z wewnętrznych pojemników, trzeba użyć klasy, na przykład, “Span-24”, o dz, rozciągającej się na całej szerokości strony lub “Span-8”, na blok, który obejmuje całej 8. Jeśli pojemnik jest ostatni w określonym pojemniku lub kolumnie, powinna również zawierać klasę “ostatni”.HTML dla układu powyżej wyglądałby następująco (pominąłem zawartość, oczywiście):

 

<body>
    <div class="container">
    
        <div class="span-24 b">
        </div>
        
        <div class="span-6 b">
        </div>
        
        <div class="span-18 last">
        
            <div class="span-15">
        
                <div class="span-15 last b">
                </div>
                
                <div class="span-9 b">
                </div>
                
                <div class="span-6 last b">
                </div>
                
            </div>
            
            <div class="span-3 last">
            </div>
            
            <div class="span-18 last b">
            </div>
        
        </div>
    
    </div>
</body>
Dodałem również klasy “B” (przepraszam za nazwę prezentacyjnego) do div, które mają zawartość tak, że mogę dodać trochę jasnego tła i dolny margines, aby obejrzeć szkielet lepiej (jesteśmy po prostu robi szybkie przykład tutaj, więc jest OK, aby m.in. to bezpośrednio w głowicy):

.b {
background:#d4d4d4; margin-bottom:10px; }

 

To zajęło mi mniej niż 10 minut, aby zrobić (wiem, że to całkiem proste, choć), w tym o szybki odczyt przez Rozpoczęcie pracy przewodników.

960gs

. Ramy 960 Siatka systemu CSS został opracowany przez Nathan Smith i została wydana w marcu 2008 Ten ramowy został opracowany z naciskiem na sieci; mimo że zawiera podstawowe style typograficzne, jego głównym celem jest dostarczenie podstawy w różnych przeglądarkach (posiada pełne wsparcie przeglądarki-klasy, określone przez Yahoo!), która pozwala na wiele wariantów najczęstszych układów sieciowych opartych.

 

 

Dla 960gs Idę z jeszcze prostszy układ – Głównym założeniem jest to, aby pokazać różnice między klasy nazewnictwa i gniazdowania od ramy do ramy.

Ram działa domyślnie, albo na 12 lub ​​16 kolumn siatki. Musimy dodać kontener otaczającą wewnętrzne bloki z klasą “container_16” (lub “container_12”); wewnętrzne pojemniki powinny mieć klasy “grid_16”, “grid_14”, itp., w zależności od liczby kolumn one obejmują. Oto końcowe znaczniki HTML dla naszego prostego układu:

 

<body>
    <div class="container_16">
        <div class="grid_16 b">
            Header
        </div>
        <div class="grid_4 b">
            Sidebar
        </div>
        <div class="grid_12 b">
            Main content
        </div>
        <div class="grid_16 b">
            Footer
        </div>
    </div>
</body>
Jak z planu, istnieje kilka narzędzi online, które pozwalają skonfigurować ramy do Twoich potrzeb. Płyn 960 Układ Siatka jest oparta na oryginalnym 960 Grid System, ale pozwala na płyn i trwałych układów oraz zawiera podstawowe stylizacji dla elementów, takich jak nawigacja, tabel, formularzy, artykułów i typografii.

YUI 3 Siatki

YUI 3 Siatki ramy jest częścią biblioteki interfejsu użytkownika Yahoo! (YUI).Biblioteka zawiera zasoby JavaScript oraz CSS (YUI 3 CSS zawiera również reset i typografia arkusze stylów). To działa w sposób podobny do innych ram przedstawionych w niniejszym rozdziale, z różnicą: nie ma predefiniowanych szerokości do pojemnika głównego, tylko predefiniowanych “jednostki”, w której pojemnik można rozszerzać w innym pojemniku.

W tym przypadku, musimy dodać żądaną szerokość do elementu body naszej stronie, jak na przykład:
1
2
3
4
body {
     margin: auto;
     width: 960px
}

 

 

“Margin: auto” Hala będzie centrum naszych treści na stronie. Następnie, podobnie jak w przypadku innych ram, musimy zawierać pojemnik otoki z klasą “yui3-g”. Pojemniki znajdujące się w nim weźmie nazwy klas w oparciu o procent szerokości powinny wypełnić (lub “jednostki”). Tak więc, na przykład, jeśli bocznym odbywa się w jednej trzeciej całkowitej szerokości powinien mieć klasę “yui3-U-1-3”, a jeżeli główny obszar zawartości odbywa się w dwóch trzecich całkowitej szerokości powinno posiada klasę “yui3-u-2-3”. YUI jest wyposażony w zestaw predefiniowanych klas jednostek (które są wymienione w witrynie zasad ramowych).

Ostatnim przykładem będzie mieć następujący kod HTML:

 

<body>
    <div class="yui3-g">
        <div class="yui3-u-1 b">
            Header
        </div>
        <div class="yui3-u-1-3 b">
            Sidebar
        </div>
        <div class="yui3-u-2-3 b">
            Main content
        </div>       
        <div class="yui3-u-1 b">
            Footer
        </div>
    </div>
</body>
Patrząc w ten sposób:
Zauważ, że nie ma YUI rynny między kolumnami – Widzę, że w dół.

Moje ulubione

Dla mnie jest jasne, że jest zwycięzcą i Blueprint.Podręcznik było jasne, że zawiera wiele ćwiczeń i przykładów od wewnątrz przedniej stronie internetowej, a fakt, że stanowi dobrą podstawę typograficzny jest główną zaletą.

Kolejną zaletą jest wspólnota Blueprint za nim, który jest stale tworzenia i rozwiązywania nowych wtyczek, tematów i innych narzędzi, które mogą być używane w połączeniu z podstawowych ram.

Czułem logiki 960gs dużo trudniejsze do zrozumienia; zajęło mi więcej niż 30 minut, aby dowiedzieć się, jak ramy pracował i zakończyć układ. Jeśli mam zamiar użyć ramy będę robił to, aby zaoszczędzić czas, więc nie uważam, że doświadczenie bardzo miłe. Ponadto, w przeciwieństwie do strony internetowej plan, w 960gs jest nie mieć jasną “zaczęła się” poradnik, więc musiałem szukać artykułów spoza terenu do “zacząć”. Ja jak Fluid 960gs ram, ale nie jestem pewien, czy nie jest to coś podobnego do Planu.

Większość osób, które Rozmawiałem robiąc ten mały eksperyment wspomnieć, że tak naprawdę nie doceniają ram, ale ci, którzy robili, przysiągł 960gs, więc to może być, że po prostu nie został wprowadzony do niego prawo (lub prostszy) sposób. Tam są piękne strony internetowe zbudowane na górze tej ramy (szybkie spojrzenie na jego stronie internetowej, jest wystarczającym dowodem), jak wspaniały Czarny Estate Vineyard:

Fakt, że YUI można dostosować do dowolnej szerokości jest dużym plusem, ale zmniejsza się ilość połączeń jednostek się to trochę niewygodne w użyciu, a ja czułem się nieco ograniczone, co mogę zrobić z moimi układów. Jeśli jest to błędne, chciałbym, jeśli ktoś dać mi znać, że nie może znaleźć sposób wokół niego łatwo w ​​podręczny przewodnik.

Wniosek

I już wspomniano powyżej, że wierzyłem ramy CSS być “proste rozwiązanie”. Nadal uważam, że to prawda, ale nie widzę go jako coś złego: dlaczego spędzać godziny tworząc doskonale ręcznie wykonane układy CSS, gdy istnieją doskonałe podstawy, że możemy budować na już tam? Życie nie jest tylko o kodowanie (naprawdę) i że są lepsze rzeczy, które można zrobić z mojego czasu niż tworzenie problemów, dla których istnieją już rozwiązania.

To nie znaczy jednak, że uważam, że każdy powinien być za pomocą istniejących ram w swoich projektach. Najlepiej, chcesz pracować z własnym ram lub szablonu, dostosowany do Twoich potrzeb. To po prostu oznacza, że nie sądzę, ramy CSS powinien być traktowany jak coś złego i na pewno mogą być przydatne w niektórych przypadkach, a nawet jako baza lub inspiracji do stworzenia ram niestandardowy. A ja na pewno nie potępia żadnego projektanta lub agencji, która używa out-of-the-box rozwiązań, jak Blueprint, ponieważ korzyści, które można uzyskać z pomocą tych może przekroczyć wady jak do pełnych arkuszy stylów i niezarejestrowanych nazw semantycznych klas.

Nie zrozumcie mnie źle: ja żerują na dobrym kawałkiem kodu HTML i CSS semantycznego, a jak większość z Was, ja także chciałem rzucać się po raz pierwszy spojrzałem na nie-semantycznych klas, które używają tych ram. Będę na ciebie patrzeć na boki, jeśli nawigacja jest paragraf, a nie listy i mogę unfollow cię na Twitterze, jeśli wiem, jaki kiedykolwiek używane nazwy klas takich jak “redLink”. Wciąż wierzę, że nazwy nie-semantyczne klasy są najmniej pożądane cechą ram; idealnie nie powinien mieć klasy, takich jak, że w naszych arkuszy stylów, ale ja również uważam, że są chwile, kiedy musimy być elastyczni i dostosowywać się i akceptuje, że takie rzeczy się wydarzy.

Być może są one dobrym rozwiązaniem dla szybkich i niskich projektów budżetowych, lub prototypów (chociaż kod prototyp często przejść do produkcji, więc uważaj, jeśli jesteś szczególnie leniwy, jak ja). Pomyślałem, że to będzie dobry temat do dyskusji, i myślę, że nie przeszkadza powiedzieć, że lubię ludzi stuff zwykle się razi, więc tutaj.

Mój werdykt: nie, ramy nie są złe.

Więc moje pytanie jest, czy kiedykolwiek używane ramy? Czy zgadzasz się, że są one doskonałym narzędziem, albo ja zwariowałem? Chciałbym usłyszeć swoje myśli.

Comments are closed.