CSS ile sorunları çözme. HTML ve CSS - neden bunları bilmeniz gerekiyor ve neden PHP ve MySQL bilgisine ihtiyaç duyuluyor, ancak çok daha küçük bir ciltte Neden css

  • 11.12.2021

Basamaklı Stil Sayfaları (CSS), bir web sayfasını ziyaretçiler için çekici hale getirmek için kullanılır. Ek olarak, CSS stil sayfaları web sayfası tasarım sürecini büyük ölçüde basitleştirir. Ayrıca CSS, tüm siteyi düzenlemenize değil, tek bir yerde değişiklik yapmanıza olanak tanır. Bu şekilde, her web sitesi sayfasını ziyaret etmeniz ve düzenlemeniz gerekmez.

CSS size değerli zaman ve enerji tasarrufu sağlar. Basamaklı Stil Sayfaları, adından da anlaşılacağı gibi, genellikle "basamaklı" olarak adlandırılan bir öncelik listesine dayalı olarak web sayfalarının öğeleri için belirli bir stil tanımlar. Bunun dışında sitenizin web sayfalarındaki çeşitli öğeleri yönetmenize de olanak tanır. Tek bir CSS stil sayfası, tüm bir web sitesinin yazı tipini, biçimlendirmesini, metin boyutunu, konumlandırmasını, stilini ve rengini kontrol edebilir. Basamaklı Stil Sayfaları web sitenizin görünümünü ve verdiği hissi değiştirebilir, ancak bunların web sitesi tasarımıyla hiçbir ilgisi yoktur.

CSS, bir web yöneticisine birçok yönden yardımcı olabilir. CSS sayesinde web sitesi daha çekici bir tasarıma sahip olacak. Bununla birlikte, arama motorları bile, onları arama dizininde sıralamaya geldiğinde CSS tabanlı web sitelerini tercih eder.

Sitenin sunumunu içeriğinden ayırmak.

CSS ile, bu teknoloji farklı stil sayfalarını sitenizin metniyle ilişkilendirmenize izin verdiği için sitenizin görünümü ve hissi üzerinde çok fazla kontrole sahip olabilirsiniz. Sonuç olarak, bir web sayfasındaki herhangi bir öğenin görünümünü değiştirmeniz gerekirse, yalnızca bir harici CSS dosyasını düzenlemeniz yeterlidir ve bu, web sitesinde yansıtılacaktır. Bu yaklaşım sadece esnek bir site yönetim süreci sağlamakla kalmaz, aynı zamanda zamandan da tasarruf sağlar.

Web sitesi yükleme hızını artırın.

Basamaklı Stil Sayfaları metin dosyaları olduğundan, hafiftirler ve daha az bant genişliği kullanırlar, bu da sitenizin yükleme hızını artırır. İstatistiklere göre, harici CSS tabanlı stil sayfaları kullanan bir site, bu teknolojiye sahip olmayan benzer bir siteden yaklaşık yedi kat daha hızlı yüklenir. Metin belgeleri çok hızlı yüklendiğinden, web sayfaları birkaç saniye içinde görüntülenecektir ve bu, sitenizi ziyaret eden ziyaretçilerin genel deneyimi üzerinde olumlu bir etki yaratacaktır.

CSS, bir web sayfasındaki herhangi bir öğeyi yeniden konumlandırmayı kolaylaştırır. Örneğin, bir menü herhangi bir yere yerleştirilebilir: sol, sağ, üst veya alt. Bununla birlikte, öğelerin bu şekilde konumlandırılmasının temel amacı, arama motoru robotlarının ilk etapta web sitenizin ana içeriğini taramasıdır. Bunu başarmak için HTML kodunda menü gibi tüm yardımcı öğeleri ana içerikten sonra yerleştirmeniz gerekir.

Modern tarayıcılarla CSS uyumluluğu.

Günümüzde pek çok farklı tarayıcı olduğundan, bir web yöneticisinin sitenin işlevselliğini kesinlikle tüm tarayıcılarda test etmesi zordur. Ancak, standart CSS tabanlı düzene bağlı kalırsanız, bu sorunun çözülmesi kolaylaşır.

Yukarıdan da görebileceğiniz gibi, CSS teknolojisi, modern, çekici siteler oluşturmak için araçlar sağlamanın yanı sıra, bir takım sorunların çözülmesine de yardımcı olur. Hangi kendi içinde CSS'nin yüksek önemini belirler.

Forumlar internetteki en eski hizmetlerden biridir. Bu iletişim platformları ilk ortaya çıkanlar arasındaydı ve o zamandan beri pratik olarak değişmeden kaldı. Ancak önemli yaşlarına rağmen, hala işlevleriyle başa çıkıyorlar. Burası insanların iletişim kurduğu, sorular sorduğu ve cevaplar aldığı yerdir.

Bu CSS nedir

CSS, bir belgenin görsel görünümünü tanımlamak için resmi bir dil olarak adlandırılabilir. Tamamen CSS gibi geliyor Basamaklı Stil Şablonu bir Rus kişinin Basamaklı Stil Sayfalarını, yani KTS'yi anladığını. Tabii ki, kimse CCC kullanmaz, ancak CSS kullanmak gelenekseldir. CSS dili 17 Aralık 1996'da ortaya çıktı.

Neden ayrı bir dosyada CSS stillerine ihtiyacımız var?

Html'de stiller yazmak için içeriye ihtiyacınız var .. kurallarınızı etikete yazın

içinde kuralların yazılı olduğu yer. Kendisi de kayıt oluyor

- Stili doğrudan belirlemeye karar verirseniz iç içerik , o zaman parametreyi kullanmalısınız stil = "..."

Doğru CSS kuralları ve CSS'de nasıl yorum yapılır

Burada elbette çok miktarda teori yazabilirsiniz, ancak burada bir referans kitabımız yok. Her şeyi basit bir örnekle göstereceğim, hatırlanması gereken en önemli şey seçiciler, özellikler ve değerler olduğu. Seçici, kuralların uygulanacağı şeydir, özellik, kullanacağımız kuralların türüdür ve değer, değerdir. (özellik + değer = kural)

Yazı buna benziyor seçici (özellik: değer;), birkaç seçici uygulamanız gerekirse, bunları virgül birkaç kural varsa noktalı virgül... sonunda her zaman noktalı virgül.

CSS'deki herhangi bir metni yorumlamak için, metni bunun gibi tırnak işaretleri içine almanız gerekir. /* Metin */ ve hepsi 🙂

Söz verildiği gibi, Görsel CSS örnekleri :

P (
yazı tipi ailesi: Verdana;
arka plan: beyaz;
kırmızı renk;
}

Buradaki seçici p'dir, yani etiketli herhangi bir paragraf için bu kurallar geçerli olacaktır. Üstte yazmamanız için paragraf beyaz olacak ve Verdana yazı tipinde kırmızı metin olacaktır. Genel arka plan sarı ve yazı tipi farklı olsa bile.

  • öğretici

Hataları ve ipuçlarını kendi deneyimlerime göre yazdım. "Kötü tavsiye" gibi hatalar varsa, yapıcı eleştiri duymaktan memnuniyet duyarım. Gönderi, yeni başlayanlar için HTML ve CSS öğrenmeye yöneliktir, ancak belki de uzmanlar bu materyali okumakla da ilgilenecektir.

1. W3C Doğrulayıcı

Validator.w3.org hizmeti aracılığıyla sitenin HTML ve CSS'sini doğrulamanız önerilir. Bu hizmet kodu tarar ve hataları görüntüler, örneğin:
  • etiket kapalı değil;
  • bağlantılarda kullanımdan kaldırılmış karakterler;
  • Kullanımdan kaldırılmış bir etiket kullanılıyor.
  • gerekli nitelik belirtilmemiş;
  • ve diğeri.

2. UTF-8 biçiminde düzen

Bir sayfayı kodlarken, dosya kodlamasının şu şekilde ayarlandığından emin olmanız gerekir. UTF-8 (BOM yok)... Her metin düzenleyici, kodlamayı farklı şekilde ayarlar.

UTF-8 biçimindeki dosya, standart olmayan karakterler (örneğin, farklı dillerin sembolleri, para birimi işareti ve diğerleri) kullanmanıza olanak tanır.

Ayrıca tarayıcılara sayfanın UTF-8 kodlamasında açıldığını söylemeniz gerekir. Bu, aşağıdaki etiket aracılığıyla yapılır:

3. Birkaç öğe için aynı kimlik

HTML kodundaki id özelliği değeri kopyalanmamalıdır.

4. Spritelar

Birkaç küçük resmi tek bir dosyada birleştirmeniz önerilir (böyle bir dosyaya hareketli grafik denir). Bu, siteye yapılan istek sayısını azaltacak ve sayfa yükleme hızını iyileştirecektir.

Artık sprite yerine simgeler içeren yazı tiplerini kullanmak da popüler. Şunlar. harfler yerine dişli simgeleri, gülen yüz ve diğer simgeler görüntülenir. Bir örnek, Twitter Bootstrap'ta kullanılan glifon simgeleridir.

Yazı tiplerinin hareketli grafiklere göre avantajları, simgeleri yeniden boyutlandırırken kalitenin korunması ve daha küçük bir boyuttur. Ancak dezavantajı, simgede birden fazla renk kullanamamanızdır.

5. Çok sayıda seçici

Üçten fazla seçici kullanılması tavsiye edilmez, çünkü bu sitenin performansını etkiler.

/ * önerilmez, büyük yerleştirme * / .page .item .title a () / * kısaltılabilir * / .page .item a ()
Tarayıcılar CSS'yi sağdan sola okur. Şunlar. yukarıdaki kodda önce sayfada bulunan tüm linkler seçilecek, ardından .item elementinin içindeki linkler seçilecektir.

6. HTML'deki Stiller

HTML, bilgileri (metin, resimler) görüntülemek için tasarlanmıştır. İçerik stili (yeniden boyutlandırma, renk, yazı tipi) CSS'de gerçekleşir.

kodda hata

kodda hata

7. Yanlış sınıf isimleri

Birçok mizanpaj tasarımcısı, metni yeşil yapmak gerektiğinde, ona .green sınıfını ekler.

Mesaj metni


Bu yanlış çünkü tasarım değiştirilirken birçok renk değişebilir, örneğin mesaj metni yeşil yerine mavi olarak görüntülenebilir. Daha sonra .green sınıfına sahip tüm etiketleri aramalı ve .blue ile değiştirmelisiniz.

Mesaj metni

Mesaj metni

8. Kesirli Pikseller

Bazı tarayıcılar pikselleri "1.5 piksel" gibi kesirli değerlerde belirtmenize izin verir. Ama bu yanlış çünkü piksel bölünmez bir birimdir. "1.5px" yerine "1.5em" kullanmak daha iyidir.

P (/ * doğru değil * / harf aralığı: 1.5 piksel; / * doğru * / harf aralığı: .005em;)

9. Kimlik yerine sınıfları kullanma

id yerine sınıfa göre seçilmesi önerilir, çünkü id seçiciler sınıflardan daha ağırdır ve geçersiz kılınması zordur.

#modal a (color: blue;) / * aşağıdaki renk geçersiz kılınamaz, çünkü #modal sınıflarından daha ağırdır * / .modal-header a (color: # 333;) / * bu durumda #modal * / #modal .modal-header a (color: # 333;) eklemelisiniz
Ayrıca kullanılması tavsiye edilmez! ağırlığı id özelliğinden daha yüksektir ve geçersiz kılmak da zor olacaktır.

10. Menü

Menü bir liste gibi biçimlendirilmelidir.

Ana Sayfa Haberler Şirket Hakkında

  • ev
  • Haberler
  • Şirket hakkında

11. Görüntülerde eksik alt

Etiketlerde alt niteliğini belirtmelisiniz (boş bırakabilirsiniz).

12. Etiketler

Sayfadaki etiket başına yalnızca bir başlık olmalıdır

... Temel olarak, bu etiket sayfanın başlığını içerir.

13. Transkripsiyon

Tüm elementlerin isimleri İngilizce tercümesi ile yazılmalıdır. Bir kelimenin İngilizce olarak nasıl yazıldığını bilmiyor olsanız bile, tercüme edebilecek birçok ücretsiz hizmet var. Öğelerin adları yazıya döküldüğünde, profesyonelce görünmüyor.

/ * yanlış * / .tovar () .stranica () .zapros () / * doğru * / .product () .page () .query ()

14. Düzeltme

Özetle clearfix hakkında bir şeyler yazmak zor ama bana göre pek çok layout tasarımcısının hata yaptığı bir noktaya işaret edeceğim.

.clearfix sınıfı, bitişik değil, üst etikette belirtilmelidir.

15. HTML bir programlama dilidir

Bazı HTML'ye yeni başlayanlar, HTML'nin bir programlama dili olduğunu düşünür. Aslında HTML bir programlama dili değildir, Microsoft Word ile karşılaştırılabilir. Örneğin, metni kalın yapmak için Word'de bir düğmeye tıklamanız ve HTML'de kodu yazmanız gerekir. Şunlar. HTML basitçe metin, resim, tablo ve diğer öğeleri ekleyen bir araçtır.

Per Harald Borgen'in ru.hexlet.io'da yayınlanan "Css Grid, layouts oluşturmak için Bootstrap'tan neden daha iyidir" makalesinin çevirisini sunuyoruz.

CSS Izgarası, web üzerinde mizanpajlar oluşturmanın yeni yoludur. İlk kez, tarayıcıda birçok avantaj sağlayan tam teşekküllü bir düzen sistemi mevcuttur.

Bu faydalar, CSS Grid'i en popüler Bootstrap çerçevesiyle karşılaştırdığınızda özellikle çarpıcıdır. Yalnızca önceden JavaScript olmadan imkansız olan düzenler oluşturmakla kalmaz, aynı zamanda kodunuzun bakımı ve anlaşılması daha kolay hale gelir.

CSS Grid'in Bootstrap'tan üstün olduğunu düşünmemin üç ana sebebine bir göz atalım.

İşaretleme daha kolay hale gelecek

Bootstrap'i CSS Grid ile değiştirmek, HTML'nizi daha temiz hale getirecektir. Bu en önemli fayda olmasa da, muhtemelen ilk fark edeceğiniz faydadır.

Anlaşılır olması için, iki sürüm için gereken kodun karşılaştırılabilmesi için sahte bir web sitesi düzeni oluşturdum. Burada:

Önyükleme

Bootstrap'ta bu siteyi oluşturmak için gereken işaretlemeye bakarak başlayalım.

Burada şunlara dikkat etmenizi rica ederim:

  1. Her satır ayrı bir etiketle olmalıdır
    .
  2. Düzeni belirtmek için sınıf adları (col-xs-2) kullanılmalıdır.
  3. Bu kalıp karmaşıklaştığında, HTML de karmaşıklaşır.

Duyarlı bir siteyse, etiketler daha da kötü görünme eğilimindedir:

CSS Izgarası

Şimdi aynısını CSS Grid'de uygulamanın bir yoluna bakalım. İşte HTML:

Anlamsal öğeler kullanabilirdim, ancak Bootstrap ile karşılaştırmayı daha net hale getirmek için div ile kalmaya karar verdim.

Bu işaretlemenin daha basit olduğunu hemen görebilirsiniz. Her satır için çirkin sınıf adları ve ekstra div etiketleri geçmişte kaldı. Bu sadece ızgara ve içindeki konum için bir kapsayıcıdır.

Ve Bootstrap'in aksine, bu biçimlendirme, sayfa düzeni daha karmaşık hale geldikçe aşırı karmaşıklaşmayacaktır.

Bootstrap örneğinde, CSS eklemeniz gerekmiyordu, CSS Izgarasında kesinlikle yapmanız gerekiyor. Daha spesifik olarak, şunu eklemeniz gerekir:

Bazıları için bu, Bootstrap lehine bir argüman olabilir: Basit bir ızgara oluşturmak için CSS hakkında endişelenmenize gerek yok - düzeni HTML'de oluşturmanız yeterli.

Ancak bir sonraki paragrafta göreceğiniz gibi, biçimlendirme ve düzen arasındaki bağlantı, esneklik söz konusu olduğunda aslında bir güvenlik açığıdır.

Çok daha fazla esneklik

Diyelim ki ekranınızın boyutuna göre düzeni değiştirmek istiyorsunuz. Örneğin, mobil cihazlardan görüntülemek için menüyü en üst sıraya yükseltin.

Başka bir deyişle - düzeni bundan değiştirin:

buna:

CSS Izgarası

Bunu CSS Grid ile yapmak çok kolay. Bir medya sorgusu ekliyoruz ve farklı blokları istediğimiz gibi karıştırıyoruz:

Bu şekilde - HTML'nin nasıl yazıldığına bakmadan - bir düzen oluşturabilmek, kaynak sıralaması bağımsızlığı olarak adlandırılır ve geliştiriciler ve tasarımcılar için büyük bir kazançtır.

CSS Izgarası, HTML'yi olması gerektiği gibi dönüştürmenize olanak tanır. CSS için olan görünürlük değil, içerik işaretlemesi.

Önyükleme

Aynısını Bootstrap'ta yapmak istiyorsak, HTML'yi değiştirmemiz gerekir. İkinci sıradaki menü rehin tutulduğundan, başlığa ek olarak menü etiketini üst sıraya taşımamız gerekecek.

Bunu bir medya sorgusu ile yapmak önemsiz bir iş değildir. Bu yalnızca HTML ve CSS ile yapılabilir ve JavaScript ile uğraşmanız gerekir.

Bu örnek, kendim deneyimlediğim CSS Izgarasının büyük faydasını gösteriyor.

Artık 12 sütun sınırlaması yok

En büyük sorun değil, ama beni birçok kez kızdırdı. Bootstrap ızgarası 12 sütuna bölündüğünden, beş sütunlu bir düzen istiyorsanız başınız belada. Ya da yedi. Ya da dokuz. Veya on iki olmayan bir sayıdan.

CSS Grid'de durum böyle değil. İstediğiniz kadar sütunla kendi düzeninizi oluşturabilirsiniz. İşte yedi sütunlu bir düzen.

Bu, ızgara şablonu sütunları için tekrar (7, 1fr) değerini şu şekilde ayarlayarak yapılır:

Bootstrap'ta bunu yapmanın bazı hileli yolları olabilir... Bootstrap 4'ün Flexbox kullandığını ve bu esnekliğe izin verdiğini biliyorum, ancak yine de hiçbir şekilde beta sürümünden çıkmayacak.

Bu makaleyi bitirmeden önce elbette tarayıcı desteğinden bahsetmemiz gerekiyor. Bu yazının yazıldığı sırada, küresel web trafiğinin %75'i CSS Grid tarafından desteklenmektedir.

Ancak CSS Grid'i tamamen kullanma fikrinden vazgeçmeden önce Morten Rand-Hendriksen'in bu konuda söyleyeceklerini dinlemenizi tavsiye ederim. CSS Grid'in geriye dönük uyumluluğu temsil etme şeklimizi yeniden düşünmek için bir fırsat olduğunu savunuyor:

“CSS Grid, kaynak kodun sırasına müdahale etmeden bir belgenin işaretlemesini değiştirmemize izin veren bir işaretleme modülüdür. Başka bir deyişle, CSS Grid tamamen görsel bir araçtır ve doğru kullanılırsa belgedeki içeriğin iç bağlantılarına müdahale etmez. Basit ama şaşırtıcı bir gerçeği takip ediyor: Eski tarayıcıda CSS Grid desteğinin olmaması site ziyaretçisinin algısını etkilememeli, sadece bu algıyı değiştirmelidir."

Başka bir deyişle, içeriği görünürlükten ayırdığınızda, tüm ziyaretçiler içeriği görebilir, ancak CSS Grid, onu daha iyi işaretleme ile destekleyenler için görüntüleme deneyimini daha iyi hale getirecektir.

Çözüm

"CSS Grid'i ne kadar çok kullanırsam, üstüne bir soyutlama katmanı eklemenin bir avantajı olmadığına o kadar çok inanıyorum. CSS Grid, doğrudan tarayıcının içine yerleştirilmiş bir biçimlendirme çerçevesidir. "

Bu html'ye sahibim:

Ayrılık tatlı bir hüzündür!- Bill Rattleandrollspeer

Ve bu css (Site.css'nin altına eklendi):

Fancify (yazı tipi boyutu: 1.5em; yazı tipi ağırlığı: 800; yazı tipi ailesi: Consolas, "Segoe UI", Calibri, sans-serif; yazı tipi stili: italik;)

Bu nedenle, alıntının ("Ayrılık çok tatlı bir üzüntü!") İtalik olarak yazılmasını ve alıntı adından (Bill Rattleandrollspeer) farklı bir yazı tipinde olmasını beklerdim, çünkü yayılma etiketine "fancify" sınıfı eklenmiştir. Göründüğü dosya Site.css dosyasını kullanan bir düzen dosyasına atıfta bulunduğundan sınıfı mutlaka görmelisiniz.

Şimdi hangi çaylak hatasını yapıyorum?

GÜNCELLEME

Sorunun, o dosyadaki bu bölümden sonra Site.css'e yeni bir sınıf eklemiş olmam olabileceğini düşündüm:

/ ********************* * Mobil Stiller * ******************** / yalnızca @media ekran ve (maksimum genişlik: 850 piksel) (

Ama daha yükseğe taşıdım ve hala çalışmıyor ve F12 | İlgili etiket için öğeyi kontrol edin.

GÜNCELLEME 2

HTML şu şekilde aşağı gelir:

Ve işte Site.css'deki css kuralım:

P yayılma etiketi .fancify (yazı tipi boyutu: 1.5em; yazı tipi ağırlığı: 800; yazı tipi ailesi: Consolas, "Segoe UI", Calibri, sans-serif; yazı tipi stili: italik; ekran: satır içi;)

Ama bu tanınmıyor. Bunu css/html protokolünün bir uygulaması olarak görüyorum ve bir tür dünya organı tarafından düşünülmeli. Yine, aptalca bir hata yapmış olabilirim.