• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sposób dodawania stylów

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
+1 głos
121 wizyt
pytanie zadane 1 czerwca 2019 w HTML i CSS przez mb-dir Mądrala (6,710 p.)

Witam

Wiem, że wyróżniamy trzy podstawowe możliwości stylowania strony: style liniowe, style umieszczone w <style></style> oraz style które są w oddzielnym pliku i są podpinane. Większość źródeł podaje, że ostatnia metoda jest najbardziej poprawna, i to zawsze z niej powinno się korzystać, i że nie powinno się używać stylów liniowych, ponieważ trzeba rozdzielać wygląd od treści, i to jest logiczne, ale jeżeli mamy taką sytuację, to czy nie lepiej skorzystać z stylów liniowych?

 

Wyobraźmy sobie, że na stronie jest więcej takich kart, i każda taka karta, ma mieć inny kolor fonta, to wtedy moim zdaniem nie warto jest męczyć się i na siłę stylować to w CSS i dodawać jakieś klasy/id typu class="card1", tylko posłużyć się stylami liniowymi, czy take myślenie jest odpowiednie i poprawne, nie będzie to negatywnie wpływać ma SEO?

3 odpowiedzi

+4 głosów
odpowiedź 1 czerwca 2019 przez BT101 Stary wyjadacz (12,630 p.)
Style inline nie mają wpływu na SEO. Moim zdaniem najlepiej jest zrobić 1 wspólną klasę dla tych kart, ten border, wysokość, szerokość, zaokrąglenie boczków a następnie te rzeczy, które się zmieniają tworzyć nowe klasy z modyfikatorami np: `--primary`, `--secondary` albo jeśli zmienia się tylko ten kolor to może po prostu `--blue`, `--orange` itd.
+1 głos
odpowiedź 2 czerwca 2019 przez rafal.budzis Szeryf (83,560 p.)

Zanim przejdę do samych styli to chciałbym jeszcze powiedzieć parę słów na temat różnic w dodawaniu CSSów. Nie ma najlepszego sposóbu! Są różne ;)

Gdy dodajemy style przez znacznik <style> strona po wczytaniu pliku HTML jest w stanie wyświetlać się poprawnie! Zyskujemy na szybkość strony. Nie musimy czekać na wczytanie osobnego pliku CSS do którego ścieżkę poznamy dopiero po przeanalizowaniu strony. Minusem jest brak możliwości cachowania tych styli css.

Gdy dodamy style CSS poprzez znacznik <link> z ścieżka do CSSów zyskamy możliwość cachowania pliku CSS w przeglądarce. Jednak strona bedzie dostawała plik CSS wolniej z racji wymiany nagłówków cachujących z serwerem. 

Sam zalecam dodawanie styli poprzez znacznik <style> gdy plik HTML razem z stylami nie przekroczy rozmiaru jednej paczki sieciowej (32 kb). lub stosować znacznik <link> połączony z HTTP/2 i serwer push ;)

Po więcej odnośnie optymalizacji zapraszam pod : https://forum.pasja-informatyki.pl/430985/moja-prezentacja-na-temat-przyspieszania-stron-internetowych smiley

----------------------------------

Ok przejdźmy do pytania! Bardzo dobry sposób opisał @BT101 czyli metodologie BEM. Jednak chciałbym umotywować taki sposób działania abyś się do niego przekonał i wiedział dlaczego jest potrzebny. 

1) Łatwość edycji - gdy postanowisz nagle na stronie zmienić kolor bordera na taki sam kolor jak czcionka będziesz musiał dopisywać wszedzie na stronie ten kolor w style="" trudno będzie znaleźć wszystkie wystąpienia a inline będzie się powoli rozrastał.  

2) Możliwość zrezygnowania z stylu. Gdy coś posiadasz w znacznikach style="" ma to wyższy priorytet od styli CSS. Aby w plikach CSS nadpisać taką wartość musisz używać !important co jest nie za dobrym rozwiązaniem. Kiedy możesz chcieć nadpisać tak wyglądające style? Tworząc szablon wydruku! Podczas drukowania być może będziesz chciał zamienić kolor na czarny i będziesz zmuszony używać !important. Problem może pojawić się również podczas tworzenia ciemnego schematu kolorystycznego strony.

3) Klasy kolorów mogą się przydać w menu widocznym na komórkach i na komputerach. Często są to dwa odrębne menu przez co będziesz miał kopie kolorów w dwóch miejscach.

Jadnak da się wykonać twój pomysł używając style="" i nie posiadać problemów wymienionych powyżej. Z pomocą przychodzą zmienne CSS. Ja zrealizował bym toi w taki sposób: 

CSS: 

--red: #f00;
--blue: #0f0;
--green: #00f;

.menuItem {
    --item-color: var(--red);
    color: var(--item-color);
    [...]
}


HTML :

<div class="menuItem" style="--item-color: var(--blue)">

<div class="menuItem" style="--item-color: var(--green)">

 

0 głosów
odpowiedź 1 czerwca 2019 przez pablop76 VIP (121,600 p.)

moim zdaniem nie warto jest męczyć się i na siłę stylować to w CSS

Właśnie warto. To jest istota CSS. BT101 poszedł krok dalej i wskazał metodologię BEM. Wstawianie stylów poza arkusz tak jak stosowanie !important  to proszenie się o kłopoty.

Podobne pytania

+1 głos
2 odpowiedzi 121 wizyt
0 głosów
0 odpowiedzi 147 wizyt
pytanie zadane 10 grudnia 2020 w HTML i CSS przez radzikuu Użytkownik (890 p.)
0 głosów
1 odpowiedź 101 wizyt

90,871 zapytań

139,544 odpowiedzi

313,819 komentarzy

60,356 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...