Bloğun farklı taraflarına yerleştirme elemanları. Blokları yatay olarak yerleştirme yolları CSS nesnesinin konumu
Muhtemelen zaten bildiğiniz gibi, bir web sitesini tabloları kullanarak düzenleyebilirsiniz; bu durumda sayfa hücrelere bölünür. Bir web sitesi sayfası ayrı öğelerden oluştuğunda bu amaçlar için blokları da kullanabilirsiniz.
Birçok acemi web yöneticisi için ciddi bir sorunun, blokları bir web sayfasında belirli bir yere yerleştirme görevi olduğunu söylersem muhtemelen yanılmayacağım.
Blokları kullanarak düzenleme yaparken karşılaşılan ana zorluklardan biri, aynı blokların konumlandırılmasıdır (hizalanması).
Katmanlar hakkında biraz
Sanırım çoğunuz katman diye bir şeyi duymuşsunuzdur. Ve kural olarak katman, bir etiketle belirtilen bir blok olarak anlaşılır.
. Aslında her şey biraz farklı.
HTML'de katman yoktur. Bu sadece bir metafor. Katmanlardan bahsettiğimizde, bir web sayfasında belirli bir yere yerleştirilebilen belirli bir html kapsayıcısını (öğesini) ifade eder.
İkinci yanılgı ise yalnızca etiket tarafından belirtilen bloğun katman olarak sınıflandırılmasıdır.
. Bu da doğru değil. Bunlar aynı zamanda paragrafları da içerebilir (
), listeler (
) ve diğer unsurlar.
Ve şimdi hakkında
Ah.
Yukarıda belirtildiği gibi herhangi bir HTML öğesinin konumunu ayarlayabilirsiniz. Bunun için her zaman etiketini kullanmaya gerek yoktur
. Ayrıca bu etiketin kullanılması, ona web sayfasında herhangi bir konum vermenizi zorunlu kılmaz.
Etiketle belirtilen bloğu kullanmanın anlamı
konsolidasyona gelir. Sonuçta içine başka öğeler de yerleştirebilirsiniz (paragraflar, resimler vb.). Bu, çeşitli içeriğe sahip büyük bir blok oluşturur; bu blok, bir web sayfasında her bir öğenin ayrı ayrı konumlandırılmasından çok daha kolaydır.
Elemanların konumlandırılması.
Dört ana konumlandırma türü vardır:
1. Statik 2. Mutlak 3. Sabit 4. Göreceli)
Statik
Varsayılan konum olarak kullanılır. Bu durumda tarayıcı HTML kodunu görüntüler, onu öğelere böler ve onlardan bir sayfa oluşturur. Sonuç, bir dizi öğenin dizisidir. Html kodunda belirtildikleri sıraya göre görüntülenirler.
Parametreleri uygulama sol, üst, sağ ve alt herhangi bir sonuca yol açmaz.
Mutlak konumlandırma kullanılarak bloğun sol üst köşesinin koordinatları belirtilir. Bu durumda koordinatlar ana öğenin konumuna göre sayılır. Ana öğe bir tarayıcı penceresi ise blok ona göre hizalanır. Bloğun bulunduğu başka bir eleman varsa hizalama bu elemana göre gerçekleşir.
Sabit
Zaten isminden bu durumda elemanın sabit olduğu anlaşılıyor. Web sayfasında belirli bir yerde bulunur ve hiçbir yere taşınmaz. Bu hizalama genellikle açılır pencerelerin ortalandığı ve siz sayfayı kaydırırken hareket etmediği açılır pencereler için kullanılır.
Akraba
Bu tür konumlandırma zor olabilir. Adı tam olarak uygun değil. Birçok kişi öğelerin göreceli ve mutlak konumlarını karıştırır. Hizalamanın ana öğeye göre olduğu görünebilir. Ve mutlak konumlandırma durumunda - tarayıcı penceresine göre. Ama bu doğru değil.
Bu durumda elemanın konumunun statik konumdaki yerine göre gerçekleştiğini anlamak gerekir. Yukarıda bahsedilen budur.
Basitçe söylemek gerekirse, tarayıcıya bir öğeyi varsayılan olarak bulunduğu yere göre belirli sayıda piksel taşımasını söylersiniz.
Başka bir zor nokta daha var. Ana öğenin göreceli konumu varsa ancak iç içe geçmiş öğenin mutlak konumu varsa ne olur? Bu durumda, alt öğenin koordinatları, varsa ofseti dikkate alınarak ana öğeye göre hesaplanacaktır.
Özetleyin.
Yani bir mülk var konum. Bu özellik 4 değer alabilir Statik, Mutlak, Sabit ve Göreli. Varsayılan: Statik.
Bir öğenin koordinatlarını belirlediğinizde, tarayıcıya bu koordinatları nasıl hesaplaması gerektiğini de söylemeniz gerekir. Ona bir başlangıç noktası vermemiz gerekiyor.
Mülk yoksa unutma konum koordinatlar dikkate alınmayacak, blok aynı yerde, statik konumunda kalacaktır.
Şimdi koordinatların nasıl ayarlandığını görelim.
Bu amaçlar için dört tür özellik kullanılır:
1. Üst 2 sol 3. Sağ 4. Alt
Tepe- pozitif bir değer (örneğin, 20 piksel) bloğu 20 piksel aşağı taşır. Negatif bir değer (-20 piksel), öğeyi 20 piksel yukarı taşır. Bütün bunlar sol üst köşeye göre gerçekleşir.
Sol- tabelaya bağlı olarak sola veya sağa kaydırın. Sol üst köşeye göre.
Sağ- tabelaya bağlı olarak sağa ve sola kaydırın. Sağ üst köşeye göre.
Alt- vites yükseltme veya azaltma, işarete bağlıdır. Sol alt köşeye göre oluşur.
İşte HTML kodu:
Ve bu CSS'dir:
#1 { konum:göreceli; üst:100 piksel; sol:100 piksel; genişlik:500 piksel; yükseklik:500px; arka plan rengi:#CCCCCC; }
#11 { arka plan rengi:#003399; konum:mutlak; alt: -30px; sağ: -50 piksel; genişlik:100 piksel; yükseklik:100 piksel; }
#2 { arka plan rengi:#990066; genişlik:200 piksel; yükseklik:300 piksel }
Pratik.
Yazarken kendim çözdüm.
HTML'deki bir blok öğesi, varsayılan olarak üst öğesinin tüm genişliğini kaplayan bir öğedir. Ana öğe başka bir blok öğesi veya bir tarayıcı penceresi olabilir. CSS özelliklerini kullanarak bir blok öğesinin genişliğini ve yüksekliğini ayarlayabilirsiniz. Blok öğelerini konumlandırma, bunları tarayıcı penceresi içinde ve CSS özellikleri pozisyon, sol, üst, sağ ve alt kullanılarak onlara göre konumlandırma işlemidir. CSS konum özelliği, mevcut dört konumlandırma türünden birini ayarlamak için tasarlanmıştır: statik (varsayılan), mutlak, sabit ve göreceli. Kalan CSS özellikleri, yani left, top, right ve Bottom, ana öğenin sol, üst, sağ ve alt kenarlarına göre mesafeleri ayarlamak için kullanılır. Ayrıca belirli özellikleri ayarlarken blok elemanları üst üste gelebilir ve bu özellik web sitelerinde de kullanılabilir.
Varsayılan konumlandırma (statik)
Bir blok elemanı için bir pozisyon belirtmediyseniz veya static olarak belirttiyseniz, ki bu aynı şeydir, o zaman blok elemanları sırayla düzenlenir. Ayrıca bir sonraki blok (örneğin: kırmızı) yeni bir satırda bulunur. Ayrıca bu konumlandırma sol, üst, sağ ve alt mesafelerin ayarlanmasından etkilenmez.
Mutlak konumlandırma (mutlak)
Mutlak konumlandırmada, bir öğenin konumu, left , top , right ve Bottom özellikleri tarafından belirtilen mesafeler kullanılarak tarayıcı penceresinin kenarlarına göre belirtilir. Sol ve sağ mesafeleri aynı anda belirtirseniz ve birbirleriyle çakışırlarsa, left tercih edilir; aynı şey üst mesafenin öncelikli olduğu üst ve alt için de geçerlidir. Mutlak konumlandırma, çeşitli öğeleri birbirine göre yerleştirmenin gerekli olduğu durumlarda, tasarım amacıyla sıklıkla göreceli konumlandırmayla birlikte kullanılır; ayrıca açılır menüler, site düzeni vb. oluşturmak için de kullanılabilir.
Sabit konumlandırma
Sabit konumlandırma diğer konumlandırma türlerinden farklıdır ve siz sayfayı kaydırdıkça içerikle birlikte hareket etmez. Sabit konumlu blok öğeleri, left , top , right ve Bottom özellikleri kullanılarak tarayıcı penceresinin kenarlarına sabitlenir. Sabit konumlandırma, çerçeve arayüzleri (tarayıcı penceresi birkaç alana bölünmüştür), sabit bir menü, sabit bir site altbilgisi ve "kalıcı" bloklar (bağlantıların listesi, sosyal düğmeler vb.) oluşturmak için kullanılır.
Göreli konumlandırma
Göreli konumlandırma, geçerli konumuna göre left , top , right ve Bottom mesafeleri belirtilerek belirtilir.
Ancak bu blok konumu, marj özelliği kullanılarak da oluşturulabilir.
Göreli konumlandırmanın tek başına kullanılması eğlenceli değildir; çoğunlukla mutlak konumlandırmayla birlikte kullanılır.
Seçenekleri ele alalım:
Css bloklarını konumlandırma Düzenin en önemli aşamalarından biri, çünkü bu, sitenin uyarlanabilirliğini veya gelecekte uygulanma olasılığını (şu anda gerekli değilse) etkileyen şeydir ve ayrıca sitenin daha fazla ölçeklendirilmesi üzerinde de önemli bir etkiye sahiptir. . "Düzen tasarımcılarının" öyle bir düzen yapması alışılmadık bir durum değil ki, sonunda onu atmak bir şeyi değiştirmekten daha kolaydır, ancak aynı zamanda düzene tamamen uygun görünebilir. Bu durum, şu veya bu tür konumlandırmanın nerede ve ne zaman kullanılacağının anlaşılmamasından kaynaklanmaktadır. Bugün bu konuyu anlamaya çalışacağız. Ve böylece, css'de bir özellik var konum. Bu özellik 5 değer alabilir ancak biz 4 ana değeri ele alacağız:
mutlak
statik
akraba
sabit
Blokların mutlak konumlandırılması (mutlak)
Listemizdeki ilk konumlandırma yöntemi mutlaktır. Bu özellik atanırken blok başlı başına bir birim haline gelir ve diğer sayfa elemanları onun konumunu etkilemediği gibi diğer elemanları da etkilemez. Blok boyutu genişlik ve yükseklik özelliklerine göre belirlenir ve sayfadaki konumu üst özelliklere göre belirlenir. sol, sağ ve alt bu parametreler üst, sol, sağ ve alt kenarlardan gelen dolguyu belirtir. Bloğun bir ana öğesi yoksa ve ayrıca ana öğenin konumu statik değilse, top, left, Bottom, right özellikleri girintileri sayfanın başından itibaren, aksi halde kenarlarından itibaren ayarlar. ana öğe.
Çoğu zaman bu tür konumlandırma, bloğun sağ veya alt kenara bastırılması gerektiğinde kullanılır. Bu düzeni ele alalım.
Kolaylık sağlamak için bloklar çok renkli bir çerçeveyle vurgulandı. İşaretleme şöyle görünecek:
Bu örnekte, sağ ve alt kenarlardan uzaklığı ayarlamak için sağ ve alt özelliklerini kullandık. Bu özellik değerleri top değerlerine eşdeğerdir: Eleman yüksekliği - 10 piksel ve sol: Eleman genişliği - 10 piksel.
Ayrıca mutlak konumlandırma bazen bir öğenin diğerine "etkilenmesi" gerektiğinde kullanılır.
Statik konumlandırma (statik)
Her sayfada meydana gelen ve genellikle çoğu öğe için ayarlanan en yaygın konumlandırma türü, css'de statik olarak yazılan statiktir. Çoğu HTML etiketi için bu değer varsayılan olarak tanımlanır; konum açıkça belirtilmemişse değer statik olacaktır. Bu düzenlemeyle, elemanlar birbirinin altında sıralanır ve her bir elemanın penceresindeki koordinatlar, pozisyon: statik veya pozisyon: göreceli olarak en yakın elemanlara bağlıdır. Bu konumlandırma ile üst, sol, sağ, alt özellikleri çalışmaz, kenar boşluğu özelliğinden dolayı konum değiştirilir.
Göreli konumlandırma
Bu tür konumlandırma, statik konumlandırmaya çok benzer; tek fark, öğenin konumunun top, left, right, Bottom ve kenar boşluğu özellikleriyle değiştirilebilmesidir.
Sabit konumlandırma
Sabit konumlandırma, koordinatların nasıl belirtildiği açısından mutlak konumlandırmaya benzer, ancak konum, HTML sayfasına göre değil, tarayıcı penceresine göre hesaplanır; top: 10px özelliği ile üst kenar boşluğunu 10px olarak ayarlayacaksınız TARAYICI PENCERESİNDEN ve sayfa kaydırmanın hangi düzeyinde olursanız olun, bu öğe her zaman ekranınızı takip edecektir.
Tipik olarak gezinme öğeleri için kullanılır, böylece kullanıcının her zaman önemli bilgilere veya ilgi çekici sayfalara giden bağlantılara sahip olması sağlanır.
CSS ile ilgili en iyi şeylerden biri, stillerin bize içeriği ve öğeleri bir sayfa üzerinde akla gelebilecek hemen hemen her şekilde konumlandırma yeteneği vermesidir. Bu, tasarımımıza yapı katar ve içeriğin daha görsel olmasına yardımcı olur.
CSS'de birkaç farklı konumlandırma türü vardır ve bu türlerin her birinin kendi kapsamı vardır. Bu bölümde birkaç farklı kullanım örneğine bakacağız (yeniden kullanılabilir düzenler oluşturma ve tek kullanımlık öğeleri benzersiz şekilde konumlandırma) ve bunu yapmak için birkaç yöntem açıklayacağız.
Şamandıra aracılığıyla konumlandırma
Öğeleri bir sayfada konumlandırmanın bir yolu, float özelliğini kullanmaktır. Bu özellik oldukça çok yönlüdür ve birçok farklı şekilde kullanılabilir.
Temel olarak, float özelliği bir öğeyi alır, onu sayfanın normal akışından çıkarır ve onu ana öğesinin soluna veya sağına konumlandırır. Sayfadaki diğer tüm öğeler böyle bir öğenin etrafına sarılacaktır. Örneğin, öğe şu durumda paragraflar bir görüntünün çevresine sarılır: float özelliği ayarlandı.
Float özelliği aynı anda birden fazla öğeye uygulandığında, çok sütunlu düzende gösterildiği gibi, kayan öğelerin yan yana veya karşılıklı olduğu bir düzen oluşturulmasını mümkün kılar.
Float özelliği birkaç değer alır; en popüler ikisi sol ve sağdır; bunlar, öğenin ebeveyninin soluna veya sağına doğru kaymasına olanak tanır.
resim ( kayan nokta: sol; )
pratikte yüzer
Üstte bir başlık, ortada iki sütun ve altta bir altbilgi bulunan genel bir sayfa düzeni oluşturalım. İdeal olarak bu sayfa öğelerle işaretlenmelidir
,
,
......
Kayan nokta olmadan bir düzenin gösterilmesi
İşte unsurlar Ve
Bölüm ( float: left; ) kenar ( float: right; )
Referans olması açısından, kayan öğeler ana öğenin kenarı boyunca konumlandırılır. Ebeveyn yoksa kayan öğe sayfanın kenarı boyunca konumlandırılacaktır.
Bir öğeyi kayan konuma ayarladığımızda, onu HTML belgesinin normal akışından çıkarırız. Bu, o öğenin varsayılan genişliğinin içeriğinin genişliğine dönüşmesine neden olur. Bazen, örneğin yeniden kullanılabilir bir düzen için sütunlar oluşturduğumuzda, bu davranış istenmeyen bir durumdur. Bu, her sütun için sabit değere sahip bir genişlik özelliği eklenerek düzeltilebilir. Ek olarak, kayan elemanların birbirine değmesini ve bir elemanın içeriğinin diğerinin yanına oturmasını önlemek için, elemanlar arasındaki boşluğu ayarlamak üzere marj özelliğini kullanabiliriz.
Aşağıda, istediğimiz sonucu daha iyi şekillendirmek için her sütuna bir kenar boşluğu ve genişlik ekleyerek önceki kod bloğunu genişletiyoruz.
Kayan bir öğe için, öğenin sayfanın normal akışından çıkarıldığını ve öğenin varsayılan görüntüleme değerinin değişebileceğini anlamak da önemlidir. Float özelliği, öğenin görüntüleme değerinin blok olarak ayarlanmasına dayanır ve öğenin varsayılan görüntüleme değerini, henüz bir blok öğesi olarak oluşturulmamışsa değiştirebilir.
Örneğin, görünümü satır içi olarak belirtilen bir öğe, örneğin satır içi , herhangi bir yükseklik veya genişlik özelliğini yok sayar. Bununla birlikte, satır içi bir öğe için kayan nokta belirtirseniz, görüntüleme değeri blok olarak değişecektir ve öğe zaten yükseklik veya genişlik özelliklerini alabilir.
Bir öğeyi yüzdürdüğümüzde, bunun display özelliğinin değerini nasıl etkileyeceği konusunda dikkatli olmamız gerekir.
İki sütun için kayan noktayı, bir sütunu sol ve diğerini sağ olarak ayarlayabilirsiniz, ancak birden fazla sütun için yaklaşımımızı değiştirmek zorunda kalacağız. Diyelim ki elemanlarımız arasında üç sütunluk bir satır olmasını istiyoruz Ve
......
...
...
Bu üç unsuru düzenlemek için üç sütunlu bir satırda tüm öğeler için kayan noktayı ayarlamalıyız sol gibi. Ayrıca genişliği de ayarlamamız gerekiyor ek sütunları hesaba katmak ve bunları yan yana yerleştirmek.
Burada hepsi eşit genişliğe ve kenar boşluğu değerine sahip ve float left olarak ayarlanmış üç sütunumuz var.
Kayan noktalı üç sütunlu düzenin gösterimi
İçeriği temizleme ve kaydırma
Float özelliği başlangıçta içeriğin görsellerin etrafında akmasına izin verecek şekilde tasarlandı. Bir görüntüye kayan nokta verilebilir ve bu görüntünün etrafındaki tüm içerik doğal olarak onun etrafında akar. Bu, görüntüler için harika çalışsa da, float özelliğinin aslında düzen ve konumlandırma amacıyla kullanılması amaçlanmamıştı ve bu nedenle birkaç tuzakla birlikte geliyor.
Bu tuzaklardan biri, bazen kayan bir öğenin bitişiğindeki veya onun ebeveyni olan bir öğede uygun stillerin görünmemesidir. Bir öğe kayan öğe olarak ayarlandığında sayfanın normal akışından çıkarılır ve bunun sonucunda kayan öğenin etrafındaki öğelerin stilleri olumsuz etkilenebilir.
Çoğu zaman kenar boşluğu ve dolgu özelliklerinin değerleri yanlış yorumlanır ve bunların kayan öğeye karışmalarına neden olur. Diğer özellikler de etkilenebilir.
Diğer bir hata ise bazen istenmeyen içeriğin kayan öğenin etrafına sarılmaya başlamasıdır. Bir öğenin belge akışından kaldırılması, kayan öğenin etrafındaki tüm öğelerin onu atlamasına ve kayan öğenin etrafındaki mevcut tüm alanı kaplamasına olanak tanır; bu da genellikle istenmeyen bir durumdur.
Önceki iki sütun örneğimizde, elemanlara bir kayan nokta ekledikten sonra Ve
Şamandıra temizleme olmadan yerleşim gösterimi
İçeriğin kayan öğelerin etrafına sarılmasını önlemek için kayan noktayı temizlememiz ve sayfayı normal akışına döndürmemiz gerekir. Kayan noktaların nasıl temizleneceğine bakacağız ve ardından içeriklerine bir göz atacağız.
Şamandıraların temizlenmesi
Bir kayan noktanın temizlenmesi, birkaç farklı değer alan clear özelliği kullanılarak gerçekleşir: en sık kullanılan değerler left, right ve her ikisidir.
Div ( temizle: sol; )
Soldaki değer soldaki kayan noktaları temizlerken, sağdaki değer sağdaki kayan noktaları temizler. Ancak her ikisi de değeri sol ve sağdaki kayan noktaları temizleyecektir ve çoğu zaman en ideal seçenektir.
Önceki örneğimize dönecek olursak, clear özelliğini bir öğe üzerinde her ikisinin de değeriyle kullanırsak
Altbilgi (açık: her ikisi de; )
Şamandıra temizlemeyle yerleşim gösterimi
İçerik akışı
Float'ı temizlemek yerine başka bir seçenek de içeriği float olarak ayarlamaktır. Sonuç hemen hemen aynı olacaktır, ancak kayan içerik gerçekten tüm stillerimizin düzgün şekilde görüntülenmesini sağlar.
Kayan içeriği ayarlamak için, kayan öğelerin ana öğenin içinde olması gerekir; bu, bir kap görevi görecek ve belgenin akışını onun dışında tamamen normal bırakacaktır. Bu ana öğenin stili, burada gösterildiği gibi bir grup sınıfı tarafından temsil edilir:
Grup::önce, .grup::sonra ( içerik: ""; görüntüleme: tablo; ) .grup::sonra ( temizle: her ikisi de; ) .grup ( temizle: her ikisi de; *zoom: 1; )
Burada pek bir şey olmuyor, ancak aslında CSS'nin yaptığı tek şey, grup öğesi içindeki tüm kayan öğeleri temizlemek ve belgeyi normal akışa döndürmek.
Daha spesifik olarak, ::before ve ::after sözde elemanları, Ders 4'te tartışıldığı gibi, grup sınıfına sahip bir elemanın üstünde ve altında dinamik olarak elemanlar üretir. Bu öğeler herhangi bir içerik içermez ve blok öğelerine benzer şekilde tablo öğeleri olarak oluşturulur. Bir grup öğesinden sonra dinamik olarak oluşturulan bir öğe, tıpkı clear'ın daha önce yaptığı gibi, grup öğesinin içindeki kayan noktayı temizler. Son olarak grup öğesi, left veya right değerine sahip bir kayan nokta olması durumunda kendisinden önce görünebilecek tüm kayan noktaları da temizler. Ayrıca eski tarayıcıların güzel bir şekilde çalışmasını sağlayan küçük bir numara da dahildir.
Burada clear: her iki komuttan daha fazla kod var, ancak oldukça faydalı olabilir.
İki sütunlu sayfa düzenimizi göz önünde bulundurarak sarabiliriz Ve
...
...
Grup::önce, .grup::sonra ( içerik: ""; görüntüleme: tablo; ) .grup::sonra ( temizle: her ikisi de; ) .grup ( temizle: her ikisi de; *zoom: 1; ) bölüm ( kayan nokta: sol ; kenar boşluğu: 0 %1,5; genişlik: %63; ) kenara ( kayan nokta: sağ; kenar boşluğu: 0 %1,5; genişlik: %30; )
Kayan içerikli bir düzenin gösterilmesi
Burada gösterilen teknik "clearfix" olarak bilinir ve genellikle diğer sitelerde clearfix veya cf sınıf adıyla görülür. Sınıf adı grubunu kullanmayı seçtik çünkü bu, bir grup öğeyi temsil ediyor ve içeriği daha iyi ifade ediyor.
Öğeler kayan olarak ayarlandığında, sayfa akışını nasıl etkilediklerini izlemek ve sayfa akışının temizleme veya kayan içerik aracılığıyla amaçlandığı şekilde sıfırlandığından emin olmak önemlidir. Aksi takdirde, kayan noktaları takip etmek, özellikle her biri birden çok sütuna sahip birden çok satır içeren sayfalarda çok fazla baş ağrısına neden olabilir.
Pratikte
Stiller Konferansı sitesine geri dönelim ve bazı içeriklere kayan nokta eklemeyi deneyelim.
İlk olarak, herhangi bir öğeye float uygulamadan önce, CSS'mize clearfix ekleyerek bu floatlı öğelere içerik sağlayalım. Main.css dosyasında, ızgara stillerimizin hemen altına, daha önce olduğu gibi grup sınıfı adının altına clearfix ekleyeceğiz. /* ================================================= ====== Düzeltme ======= ==================================== * / .group::önce, .group::sonra ( içerik: " "; görüntüleme: tablo; ) .group::sonra ( temizle: her ikisi de; ) .grup ( temizle: her ikisi de; *zoom: 1; )
Artık float'ı kullanabileceğimize göre, onu ana program için tanımlayalım.
iç eleman soldaki gibi ve başlıktaki içeriğin geri kalanının sağa akmasına izin verin.
Bunu yapmak için logo sınıfını öğeye ekleyin
. Daha sonra CSS'mizin içine ana başlık için yeni bir stil bölümü ekleyeceğiz. Bu bölümde elemanı seçeceğiz
logo sınıfıyla ve kayan noktayı left olarak ayarlayın.
Hazır buradayken logomuza biraz daha detay ekleyelim. Elemanı yerleştirerek başlayalım veya logo metnimizin iki satırda görünmesini sağlamak için "Stiller" ve "Konferans" kelimeleri arasında bir satır sonu.
CSS'de, logomuzun serbestçe "nefes alabilmesi" için logomuzun üst kısmına bir kenarlık ve biraz dikey dolgu ekleyeceğiz.
Logo ( border-top: 4px katı #648880; dolgu: 40px 0 22px 0; float: left; )
Elementi yaptığımızdan beri
kolaylaştırılmış, içeriği float olarak ayarlamak istiyoruz. için acil ebeveyn
bir elementtir bu yüzden buna bir grup dersi ekleyeceğiz. Bu, daha önce belirlediğimiz düzeltme stillerini ona uygulayacaktır.
...
Öğe şekilleniyor, o halde elemente bir göz atalım
Elementin aksine ancak sınıfı doğrudan kayan öğeye uygulamayacağız. Bu sefer float öğesinin ebeveynine bir sınıf ekleyeceğiz ve öğeyi seçmek için benzersiz bir CSS seçici kullanacağız ve ardından ona bir float vereceğiz.
Artık birincil altbilgi sınıfı öğede ayarlandığına göre
/* ========================================= Ana bodrum ====== ==================================== */ .primary-footer küçük ( float: left; )
Kontrol etmek için - burada öğeyi seçiyoruz bizim öğemiz gibi birincil altbilginin sınıf öznitelik değerine sahip bir öğenin içinde olmalıdır
Son olarak öğenin üstüne ve altına küçük bir dolgu ekleyeceğiz.
Birincil altbilgi (alt dolgu: 44 piksel; üst dolgu: 44 piksel;)
Elementlerdeki tüm bu değişiklikler dikkate alındığında Ve
Pirinç. 5.01. Birden fazla kayan öğe kullanma Ve
Satır içi blok aracılığıyla konumlandırma
Float kullanmaya ek olarak, içeriği konumlandırmanın başka bir yolu da display özelliğini satır içi blok değeriyle birlikte kullanmaktır. Satır içi blok yöntemi, daha sonra tartışacağımız gibi, öncelikle sayfaları düzenlemek veya öğeleri yan yana bir satıra yerleştirmek için kullanışlıdır.
display özelliğinin satır içi blok değerinin, öğeleri bir satırda görüntülediğini ve bunların kutu modelinin yükseklik, genişlik, dolgu, kenarlık ve kenar boşluğu dahil tüm özelliklerini almalarına olanak tanıdığını hatırlayın. Satır içi blok kullanmak, herhangi bir kayan noktayı temizleme konusunda endişelenmemize gerek kalmadan blok modelinden tam olarak yararlanmamızı sağlar.
pratikte satır içi blok
Üç sütunlu örneğimize baştan bakalım. HTML'mizi şu şekilde kaydederek başlayacağız:
......
...
...
Şimdi üç elementimiz için yüzmek yerine marj ve genişlik özelliklerini daha önce olduğu gibi bırakarak görüntüleme değerlerini inline-block olarak değiştireceğiz. Sonuç olarak CSS’miz şöyle görünecek:
Bölüm ( görüntü: satır içi blok; kenar boşluğu: 0 %1,5; genişlik: %30; )
Ne yazık ki, bu kod tek başına hile yapmak için yeterli değil ve son öğe yeni bir satıra itilir. Satır içi blok elemanları yan yana bir satırda göründüklerinden aralarında tek bir boşluk bulunduğunu unutmayın. Her bir alanın boyutu, sıradaki tüm öğelerin genişliğine ve yatay kenar boşluğu değerine eklendiğinde, genel genişlik çok büyük hale gelir ve son öğe dışarı itilir. yeni bir hatta. Tüm öğeleri görüntülemek için bir satırda her satır arasındaki beyaz boşluğu kaldırmalısınız
.
Satır içi blok elemanlarının boşlukla gösterilmesi
Satır içi blok elemanları arasındaki boşluğu kaldırma
Satır içi blok öğeleri arasındaki boşluğu kaldırmanın çeşitli yöntemleri vardır ve bazıları diğerlerinden daha karmaşıktır. Her ikisi de HTML'de bulunan en basit iki yönteme odaklanacağız.
İlk çözüm, her yeni açılış elemanı etiketini koymaktır. önceki öğenin kapanış etiketiyle aynı satırda . Her eleman için yeni bir satır kullanmak yerine, elemanları aynı satırdan başlatıyoruz. HTML'miz şöyle görünebilir:
...
...
...
...
Satır içi blok öğelerini bu şekilde yazmak, HTML'de bu tür öğeler arasında boşluk kalmamasını sağlar. Bu nedenle sayfa görüntülendiğinde boşluk görünmeyecektir.
Satır içi blok elemanlarının boşluksuz gösterimi
Satır içi blok öğeleri arasındaki boşluğu kaldırmanın başka bir yöntemi, öğenin kapanış etiketinin hemen ardından bir HTML yorumunu açmaktır. Ardından, bir sonraki öğenin açılış etiketinden hemen önce yorumu kapatın. Bu, satır içi blok öğelerinin HTML'de ayrı satırlarda başlayıp bitmesine olanak tanır ve öğeler arasındaki olası boşluğu "yorumlayacaktır". Ortaya çıkan kod şöyle görünecek:
...
...
...
...
Bu seçeneklerin hiçbiri mükemmel değildir ancak faydalıdırlar. Daha iyi bir organizasyon için yorumları kullanmayı tercih ediyorum ancak hangi seçeneği seçeceğiniz tamamen size kalmış.
Yeniden kullanılabilir düzenler oluşturun
Bir site oluştururken, başka bir yerde yeniden kullanılabilecek modüler stiller yazmak her zaman en iyisidir ve yeniden kullanılabilir düzenler, yeniden kullanılabilir kod listesinin en üstünde yer alır. Düzenler, kayan noktalar veya satır içi blok öğeleri kullanılarak oluşturulabilir, ancak hangisi en iyi sonucu verir ve neden?
Sayfa yapısı açısından kayan öğelerin mi yoksa satır içi blok öğelerinin mi daha iyi olduğu sorusu tartışmaya açıktır. Benim yaklaşımım, bir ızgara veya sayfa düzeni oluşturmak için satır içi blok öğeleri kullanmak ve ardından içeriğin öğenin etrafında akmasını istediğimde bir kayan nokta kullanmaktır (görüntülerle çalışırken kayan noktanın tasarlandığı şey budur). Genel olarak satır içi blok öğeleriyle çalışmanın daha kolay olduğunu düşünüyorum.
Ancak sizin için en uygun olanı kullanın. Bir yaklaşıma diğerine göre daha aşina iseniz, onu kullanın.
Çalışmalarda, sayfalarınızı en iyi şekilde nasıl düzenleyeceğinize karar vermenize yardımcı olacak yeni CSS spesifikasyonları (özellikle esnek ve ızgara özellikleri) bulunmaktadır. Ortaya çıkmaya başladıklarında bu yöntemlere dikkat edin.
Pratikte
Yeniden kullanılabilir düzenlere dair sağlam bir anlayışa sahip olduğumuz için artık bunları Styles Conference sitemizde uygulamanın zamanı geldi.
Styles Conference web sitesi için satır içi blok öğelerini kullanarak üç sütunlu bir düzen oluşturacağız. Bunu aynı genişlikte üç sütun veya toplam genişliği biri için 2/3, diğeri için 1/3 olacak şekilde bölünmüş iki sütun elde edecek şekilde yapacağız.
Öncelikle bu sütunların genişliğini tanımlayan sınıflar oluşturacağız. Bu iki sınıfa üçte bir için sütun 1-3 ve üçte iki için sütun 2-3 diyeceğiz. Main.css dosyamızın Grid bölümünde ilerleyerek bu sınıfları ve karşılık gelen genişliklerini tanımlayalım.
Her iki sütunun da satır içi blok öğeleri olarak görünmesini istiyoruz. Ayrıca dikey hizalamalarının her sütunun üstüne ayarlandığından emin olmamız gerekir.
Görünümü ve dikey hizalamayı paylaşan iki yeni seçici oluşturalım.
CSS'ye tekrar bakın. Virgülle ayrılmış iki sınıf seçici col-1-3 ve col-2-3 oluşturduk. İlk seçicinin sonundaki virgül, onu başka bir seçicinin takip edeceği anlamına gelir. İkinci seçiciden sonra stil açıklamasının başladığını belirten açılan bir kaşlı ayraç bulunur. Seçicileri ayırmak için virgül kullanarak, bir stili aynı anda birden fazla seçiciye bağlayabiliriz.
İçeriği bölmeye yardımcı olmak için sütunların arasına biraz boşluk koymak istiyoruz. Bu, her sütuna yatay dolgu eklenerek yapılabilir.
Ancak bu işe yarar, ancak iki sütun yan yana yerleştirildiğinde aralarındaki boşluğun genişliği dış kenardan iki kat daha geniş olacaktır. Bunu dengelemek için tüm sütunlarımızı bir ızgaraya yerleştireceğiz ve ona aynı dolguyu ekleyeceğiz.
Grid'imizi tanımlamak için grid sınıfını kullanalım ve ardından grid, col-1-3 ve col-2-3 sınıflarına aynı yatay dolguyu verelim. Seçicilerimizi yine virgüllerle ayırdığımızda CSS'miz şöyle görünür:
Yatay dolguyu ayarlarken dikkatli olmamız gerekiyor. Unutmayın, son dersimizde tüm içeriğimizi sayfada ortalamak için 960 piksel genişliğinde Container sınıfına sahip bir Container oluşturduk. Şu anda, bir konteyner elemanının içine bir ızgara elemanı koysaydık, yatay dolguları birlikte çökecek ve sütunlarımız sayfanın geri kalanının genişliğiyle orantılı görünmeyecektir.
Bunu eski kapsayıcı kural kümesini aşağıdakilere ayırarak yapacağız:
Artık konteyner veya ızgara sınıfına sahip herhangi bir öğe 960 piksel genişliğinde olacak ve sayfanın ortasında yer alacaktır. Ek olarak, kap sınıfına sahip herhangi bir öğe için mevcut yatay dolguyu yeni, ayrı bir kural kümesine taşıyarak koruduk.
Tamam, ağı kurmanın tüm zor kısmı tamamlandı. Şimdi HTML'imizle çalışma ve bu sınıfların nasıl çalıştığını görme zamanı.
Ana sayfadaki index.html dosyasındaki üç sütuna hizalanmış tanıtımlarla başlayacağız. Şu anda tanıtımlar öğeye sarılmış durumda konteyner sınıfı ile. İçerisine sütun yerleştirmeye başlayabilmemiz için konteyner sınıfını ızgaraya değiştirmek istiyoruz.
...
...
...
...
Ve son olarak, sütunlarımızın her biri satır içi blok elemanı olduğundan, aralarındaki boşlukları kaldırdığımızdan emin olmalıyız. Bunu yapmak için yorumları kullanacağız ve kodumuzu daha iyi organize etmek için her bölüme bazı belgeler ekleyeceğiz.
...
...
...
Kontrol etmek için 3. satıra, onu takip eden "Konuşmacılar" bölümünü tanımlayan bir yorum bıraktık. 7. satırın sonunda kapanış etiketinin hemen ardından bir yorum açıyoruz. Bu yorumun içinde, 9. satırda aşağıdaki "Program" bölümünü tanımlıyoruz. Daha sonra 11. satırın başında, açılış etiketinin hemen öncesinde yorumu kapatın. . Benzer bir yorum yapısı iki öğe arasındaki 13'ten 17'ye kadar olan satırlarda görünür , Mekan bölümünün hemen önünde. Genel olarak, sütunlar arasındaki olası boşlukları yorumladık ve aynı zamanda bölümlerimizi tanımlamak için aynı yorumları kullandık.
Artık 1/3 ve 2/3 sütun genişliklerini kullanan, farklı düzenleri destekleyen, yeniden kullanılabilir üç sütunlu bir ızgaraya sahibiz. Ana sayfamız artık tüm tanıtımları ayıran üç sütun içeriyor.
Pirinç. 5.02. Styles Conference ana sayfası artık üç sütunlu bir düzen içeriyor
Demo ve kaynak kodu
Aşağıda Styles Conference web sitesini mevcut haliyle görüntüleyebilir ve sitenin mevcut kaynak kodunu indirebilirsiniz.
Benzersiz eleman konumlandırma
Er ya da geç herkes bir öğeyi tam olarak konumlandırmak isteyecektir, ancak kayan veya satır içi blok öğeler böyle bir hileye izin vermez. Bir öğeyi sayfa akışından kaldıran kayan öğeler, çevreleyen öğeler kayan öğenin etrafına sarıldığı için genellikle istenmeyen sonuçlar doğurur. Satır içi blok öğeleri, sütunlar oluşturmadığımız sürece, doğru konumlandırma söz konusu olduğunda oldukça karmaşık olabilir. Bu gibi durumlarda, bloğun offset özellikleriyle birlikte konum özelliğini kullanabiliriz.
Position özelliği, öğenin sayfada nasıl konumlandırılacağını ve normal belge akışında görüntülenip görüntülenmeyeceğini belirler. Öğeyi farklı yönlerde hareket ettirerek öğenin tam olarak nereye konumlandırılacağını belirleyen bloğun üst, sağ, alt ve sol ofset özellikleriyle birlikte kullanılır.
Varsayılan olarak her öğenin konum değeri static olarak ayarlanmıştır; bu, öğenin belgenin normal akışında var olduğu ve onu konumlandırmak için herhangi bir özellik almadığı anlamına gelir. Daha sonra ele alacağımız, çoğunlukla göreceli veya mutlak değer static değerinin üzerine yazılır.
Göreli Konumlandırma
Konum özelliğinin göreceli olarak ayarlanması, öğelerin sayfanın normal akışında görünmesini sağlar, amaçlandığı gibi öğe için yer ayırır ve diğer öğelerin onun etrafında akmasını engeller. Ancak öteleme özelliklerini kullanarak bir öğenin konumunu değiştirmenize de olanak tanır. Örneğin, aşağıdaki HTML ve CSS'yi göz önünde bulundurun:
ofset sınıfıyla konum değeri, iki ofset özelliğinin (left ve top) yanı sıra göreceli olarak ayarlanır. Bu, öğenin orijinal konumunu korur ve diğer öğelerin bu alana taşınmasına izin verilmez. Ek olarak, ofset özellikleri, öğeyi orijinal konumunun solundan 20 piksel ve üstünden 20 piksel uzağa iterek hareket ettirir.
Göreceli olarak konumlandırılmış elemanlar için, bloğun ofset özelliklerinin, orijinal konumu göz önüne alındığında, elemanın nereye taşınacağını belirlediğini bilmek önemlidir. Yani 20 piksel değerine sahip bir sol özellik aslında öğeyi 20 piksel sağa iter. 20 piksel değerine sahip bir top özelliği, öğeyi 20 piksel aşağı itecektir.
Bir öğeyi ofset özelliklerini kullanarak konumlandırdığımızda, öğe, kenar boşluğu veya dolgu özelliklerinin yaptığı gibi onu aşağı itmek yerine, altındaki öğenin üzerine biner.
Mutlak konumlandırma
Konum özelliğinin mutlak değeri, mutlak konumlandırılmış öğenin belgenin normal akışında görünmemesi ve mutlak konumlandırılmış öğenin orijinal alanı ve konumunun ayrılmaması nedeniyle göreceli değerden farklıdır.
Ek olarak, mutlak olarak konumlandırılmış öğeler, göreceli olarak konumlanmış en yakın üst öğeye göre hareket eder. Nispeten konumlandırılmış bir ebeveyn mevcut değilse, mutlak olarak konumlandırılmış öğe, öğeye göre konumlandırılacaktır.
. Bu küçük bir bilgi; bazı kodların içinde nasıl çalıştığına bir göz atalım:
...
Bölüm ( konum: göreceli; ) div ( konum: mutlak; sağ: 20 piksel; üst: 20 piksel; )
Mutlak Konumlandırma Gösterimi
Bu örnekte eleman göreli olarak konumlandırılır ancak herhangi bir ofset özelliği içermez. Bu nedenle konumu değişmez. Öğe
ofset sınıfı ile konum değerini mutlak olarak içerir. Elementten beri göreceli olarak konumlandırılmış en yakın ana öğedir
, daha sonra eleman
elemana göre konumlandırılacak
.
Nispeten konumlandırılmış elemanlar için ofset özellikleri, elemanın kendisine göre hangi yönde hareket ettirileceğini belirler. Mutlak olarak konumlandırılmış öğeler için, uzaklık özellikleri, öğenin en yakın göreceli konumlandırılmış ebeveynine göre hangi yönde taşınacağını belirler.
Right ve top özellikleri sonucunda eleman
içeride sağdan 20 piksel ve üstten 20 piksel görünecek
.
Elementten beri
mutlak olarak konumlandırıldığında sayfanın normal akışında konumlandırılmaz ve kendisini çevreleyen tüm öğelerle örtüşür. Ayrıca başlangıç pozisyonu
kaydedilmez ve bu yeri başka öğeler alabilir. Genel olarak çoğu konumlandırma, konum özellikleri ve uzaklık özellikleri kullanılmadan gerçekleşebilir, ancak bazı durumlarda bunlar son derece yararlı olabilir.
Özet
İçeriği HTML ve CSS'de nasıl konumlandıracağınızı öğrenmek, bu dillerde uzmanlaşmaya yönelik büyük bir adımdır. Buna blok modelini de ekleyince ön uç geliştirici olma yolunda emin adımlarla ilerliyoruz.
Yukarıda tabloları kullanarak sayfa öğelerini nasıl konumlandırabileceğinizi anlattık. Ancak bu aynı zamanda stiller kullanılarak da yapılabilir. Stil parametreleri arasında konumlandırmaya yönelik özel özellikler vardır:
sol- pencerenin sol kenarına olan mesafeyi piksel cinsinden ayarlamak için (x koordinatı);
tepe- pencerenin üst kenarından mesafeyi piksel cinsinden ayarlamak için (y koordinatı);
z-endeksi- elemanların birbiriyle örtüşeceği sırayı belirtmek; bu yeni bir boyuttur; daha büyük z-indeksine sahip öğeler, daha küçük z-indeksine sahip öğelerin üzerinde görünecektir.
Elbette bu üç özelliğin kullanılması üç boyutlu uzay etkisi yaratmaz ancak bu düz bir yüzeyden daha fazlasıdır. Bu durumda 2,5 boyutlu uzaydan bahsediyoruz. Koordinat özelliklerine ek olarak, özelliğe de ihtiyacımız var. konumözellikleriyle birlikte sol Ve tepeöğeleri belirli pencere konumlarına kurmanıza olanak tanır. Position özelliği üç değer alabilir:
mutlak- belirtilen özellikler sol Ve tepeöğeyi koordinatların olduğu noktaya yerleştirecek X Ve en kabın (öğeyi içeren nesne) sol üst köşesine göre. Kabın dışındaki bir eleman için tanımlanmışlarsa koordinat orijini sayfanın sol üst köşesi olacaktır. Bir öğenin konumunun, etiketinin HTML belgesindeki konumuna bağlı olmadığını unutmayın;
akraba- öğe, kaynak metinde bulunduğu yere uygun olarak kurulacaktır; bu değer varsayılan olarak ayarlanmıştır. Örneğin, bir öğe belge metninde seçiminin başlangıcından üç satır sonra yer alıyorsa, bu durumda varsayılan olarak konumlandırma özelliğinin şu şekilde ayarlandığı kabul edilir: akraba ve koordinatların özellikleri sol Ve tepe- sıfır değerler. Sol ve üst özelliklerin sıfırdan farklı değerleri, öğenin orijinal konumuna göre kaymasını belirtir;
statik- öğe arka plana göre belirli bir konuma yerleştirilecek ve sayfa kaydırılırken hareket etmeyecektir.
Aşağıdaki örnek özelliğin kullanımını göstermektedir z-endeksi. Program metninde resim diğer öğelerin üzerinde anlatılmasına rağmen ona büyük bir rakamla indeks atanarak ilk metnin üstüne taşınır. Yani özelliği kullanmak z-endeksi sizi bir HTML programının metnindeki öğelerin belirtilmesinin doğal düzeninin zincirlerinden kurtarır.
<НЕАD>Konumlandırma НЕАD>
nepBbiu konumlandırılmış metinН1>
Н1>
Pirinç. 666. i-index özelliğini kullanmak, bir HTML belgesinin metnindeki öğelerin doğal sırasını değiştirmenize olanak tanır
Öğeleri konumlandırırken, öğenin boyutlarının parçanın boyutlarını (örneğimizde etiketiyle belirtilen ayrılan alan) aştığı ortaya çıkabilir.
). Örneğin, metin veya resim kendisine ayrılan dikdörtgene tam olarak sığmıyor. Bu durumda bir özellik var taşma(taşma). Mülk taşmaüç anlamı olabilir:
hiçbiri(hiçbir şey) - öğe parçanın (kendisine ayrılan alan) ötesine geçse bile gösterilmeye devam edecektir;
klips- elemanın parçanın sınırlarının dışına taşan kısımları kesilecektir;
taslak- kaydırma kullanılacaktır.
Aşağıdaki örnek özelliği kullanıyor taşmaİlk metin için bir kaydırma mekanizması oluşturmak için.
<НЕАD><ТIТLЕ>KonumlandırmaТIТLЕ>НЕАD>
riepBbiM konumlandırılmış metinН1>
İkinci konumdaki metinН1>
Pirinç. 667. Overflow özelliği kullanılarak uygulanan metin kaydırma mekanizması
Elbette önceki çizimlerdeki çirkin sayfalar yalnızca dilin öğeleri konumlandırma yeteneğini göstermek için oluşturulmuştu. Web sayfanızda hangi araçları ve hangi amaçla kullanacağınıza kendiniz karar verirsiniz.
Konumlandırma özelliklerini kullanarak etiketleriniz için üç boyutlu bir efekt oluşturmak kolaydır. Buradaki fikir, aynı içeriğe sahip metinleri birbirine göre biraz kaydırılmış ve farklı renklerde görüntülemektir. Alıştırma olarak ilgili bir program yazmayı deneyin. Resim yaklaşık olarak ne olması gerektiğini göstermektedir. Şeklin altında programın “üç boyutlu” yazıt oluşturan olası versiyonlarından biri yer almaktadır.
Pirinç. 668. CSS kullanarak 3 boyutlu metin oluşturma örneği