• Yeni paragraf etiketi. Başlıkları paragraflardan ayırma veya bir html sayfasındaki metni yapılandırma. etiket gibi Metni hizalamak için align özelliğini kullanın. Bu özniteliği kullanırken, her şey HTML'deki Numaralı ve Madde İşaretli Listeler etiketiyle aynıdır.

    Görev

    Her paragrafın ilk satırına girinti ekleyin.

    Çözüm

    Redline olarak da bilinen paragraf girintisini ayarlamak söz konusu olduğunda, en iyisi text-indent style özelliğini kullanmaktır. Değeri, ilk satırdaki metnin orijinal konumundan sağa ne kadar kaydırılacağını belirler. Metin bloğunun genişliği değişmez ve başlangıçta ayarlı kalır. Dolgu miktarı piksel, yüzde veya diğer kullanılabilir birimler olarak belirtilebilir (örnek 1).

    Örnek 1: İlk satırı girintileme

    HTML5 CSS 2.1 IE Cr Op Sa Fx

    İlk satır girintisi

    İncil geleneğine göre Babil Salgını, Kral Nemrut'un Babil'de gökyüzü kadar yüksek bir sütun inşa etme konusundaki başarısız girişimidir. İnsanlara pervasız arzularından dolayı kızan Tanrı, inşaatçıları cezalandırmaya karar verdi: artık birbirlerini anlamamaları için dillerini karıştırdı, inşaatı bırakmaya zorlandı ve yavaş yavaş dünyaya dağıldı. Buradan, eskilerin açıkladığı gibi, dillerdeki fark gitti.

    Alışılmış konseptte, Babil pandemoniumu, büyük bir insan kalabalığıyla karışıklık, karışıklık anlamına gelir.

    Bu örneğin sonucu Şekil l'de gösterilmiştir. 1.

    İçindekiler:

    Merhaba sevgili blog okuyucuları! Bugün web sayfalarında metnin yapılandırılması, gösteriminin özellikleri hakkında konuşacağız ve metnin nasıl ayrı mantıksal parçalara bölüneceğini ele alacağız: başlıklar, paragraflar, listeler.

    Html'de metinle çalışmak için birçok etiket vardır, ancak önce tarayıcıda metin görüntülemenin bazı özelliklerinden bahsetmemiz gerekir. İlk olarak, herhangi bir sayıda ardışık boşluk, sekme ve satır sonu tek bir boşluk olarak görüntülenir. Onlar. boşlukları ve sekmeleri kullanarak metni konumlandırmak işe yaramaz.

    Örneğin, bir web sayfasındaki şu satırlar, farklı yazımlarına rağmen aynı şekilde görüntülenecektir:

    Sitemize hoşgeldiniz!


    İyi
    sitemize hoşgeldiniz!


    Hoş geldin
    bizim için
    İnternet sitesi!

    İstisna etiket

    , içinde tüm boşlukların ve kısa çizgilerin olduğu gibi görüntülendiği.

    İkincisi, metin tarayıcı penceresinin genişliğini kaplar. Uzun bir metin satırı tarayıcı penceresinden daha genişse, satır sonları boşluklara veya kısa çizgilere otomatik olarak eklenir. Satırda boşluk veya tire yoksa ve satır pencerenin genişliğine sığmıyorsa, tarayıcıda yatay bir kaydırma çubuğu görünecektir.

    Şimdi html işaretlemesindeki metnin yapısal öğelerini dikkate almaya geçelim.

    HTML'deki paragraflar

    Genellikle, metin blokları paragraflarla (paragraflar) ayrılır. Bu, büyük metin parçalarını okumayı kolaylaştırır. Paragraf oluşturmak için HTML dili bir çift içerir etiket

    . Paragraf oluşturmak için sözdizimi aşağıdaki gibidir:

    Bu ilk paragraf.


    Ve bu ikinci paragraf.

    Bir html sayfasındaki paragraflar, önceki ve sonraki öğelerden küçük bir girinti ile ayrılır. Etiket

    Aynı zamanda bir blok elemanıdır. Blok elemanları nelerdir, "" makalesinde yazdım. sana şunu hatırlatayım blok elemanları html sayfasının kullanılabilir genişliğinin tamamını kaplamaları, öğenin yüksekliğinin içeriği tarafından belirlenmesi ve her zaman yeni bir satırda başlamasıyla karakterize edilirler.

    Bir web sayfasında paragraf kullanmanın bir örneğini ele alalım. Bir metin editörü açalım, HTML kodunu yazıp html uzantısı ile kaydedelim:





    Arabalar hakkında web sitesi.


    Arabalar hakkında web sitesi.



    Araba sınıflandırması


    Yolcu;


    Kargo;


    SUV;


    Buggy;


    Toplamak;


    Spor Dalları;


    Yarışma.



    Bu dosyayı açtığınızda şöyle bir şey göreceksiniz:

    Şimdiye kadar sayfamız sadece paragraflar içermektedir.

    Bir paragraf etiketindeki metni hizalamak için

    Özniteliği destekler hizalayın. Dört değerden birini alabilir:

      • sol- sola metin hizalaması;
      • merkez- metnin merkezde hizalanması;
      • Sağ— metnin sağ kenarda hizalanması;
      • savunmak- genişlikte hizalama, yani metnin aynı anda sağda ve solda hizalanması. Bunu yapmak için, tarayıcı kelimelerin arasına boşluklar yerleştirir.

    Varsayılan olarak, hizalama özelliği sola ayarlanmıştır. Align özelliğini kullanmanın bir örneği:

    Bu metin html sayfasında bir paragrafta sola hizalı olacak!


    Tarayıcıdaki bu metin sayfanın ortasında görüntülenecektir!


    Bu metin sağa hizalanacak!


    Ve tarayıcı bu büyük metin parçasını genişlikte, yani hizalayacaktır. aynı anda hem sağ hem sol! Bunu yapmak için, web tarayıcısı kelimeler arasına fazladan boşluklar yerleştirecek ve paragraf düzgün ve okunması kolay görünecek!

    Ve tarayıcıda şu şekilde görüntülenecektir:

    HTML'deki başlıklar

    Başlıklar, bir web sayfasındaki metin bölümlerini vurgulamak için kullanılır. Html'de altı başlık seviyesi vardır. En üst düzey 1. düzeydir - etiket

    ve en düşük seviye 6, etiket

    . etiketler

    sayfanın blok öğeleridir. Birinci seviye başlığın içeriği en büyük kalın yazı tipiyle ve son altıncı seviyenin başlıkları en küçük yazı tipiyle görüntülenir.

    Başlık oluşturmak için sözdizimi şöyledir:





    html başlıkları


    Birinci düzey başlık


    İkinci düzey başlık


    Üçüncü düzey başlık


    Dördüncü düzey başlık


    5. seviye başlığı

    6. seviye başlığı


    Sonuç:

    Arama motorları, başlık etiketinin içinde yer alıyorsa metne bir derecelendirme eklediğinden, başlıklar da site tanıtımında önemli bir rol oynar.

    Sayfamıza başlıklar ekleyelim:

    Arabalar hakkında web sitesi.


    Otomotiv sitemize hoş geldiniz. Burada arabalar, teknik özellikleri ve özellikleri hakkında birçok ilginç ve faydalı makale bulacaksınız.


    Bilimsel terimlerle, bir araba:


    En az 4 tekerlekli mekanik motorlu izsiz karayolu taşıtı.


    Araba sınıflandırması


    Arabalar aşağıdaki tiplerdendir:


    Yolcu;


    Kargo;


    SUV;


    Buggy;


    Toplamak;


    Spor Dalları;


    Yarışma.

    Ve sayfamızda paragraflara ek olarak büyük kalın harflerle vurgulanmış başlıklar olduğunu görüyoruz:

    etiketler

    -

    etiket gibi

    Metni hizalamak için hizalama özelliğini kullanın. Bu özniteliği kullanırken, her şey etiketle aynıdır

    HTML'de Numaralı ve Madde İşaretli Listeler

    Liste, herhangi bir ifadenin veya anlamın numaralı veya numarasız bir listesini oluşturmak için kullanılır. Numaralandırılmış öğeler içeren bir liste çağrılır. sayılı ve numarasız noktalarla - işaretlenmiş.

    Madde işaretli listelerde öğeler, liste öğelerinin soluna yerleştirilen işaretlerle işaretlenir. Web tarayıcısı, solda girintili listeyi görüntüler ve gerekli madde işaretlerini veya numaralandırmayı bağımsız olarak düzenler. Listeler ve öğeleri, bir Web sayfasının blok öğeleridir.

    HTML'deki herhangi bir liste, her biri bir etiketin içine yerleştirilmiş bir dizi öğedir.

  • . Ardından tüm öğeler etiketin içine yerleştirilir.
      , madde işaretli bir listeye veya bir etiketin içine ihtiyacınız varsa
        sıralı bir liste istiyorsanız.




        html başlıkları


        Maddeli liste:


        • ilk nokta.

        • ikinci nokta

        • üçüncü nokta.

        Numaralı liste:

        1. numaralı bir listedeki ilk öğe.

        2. numaralı listedeki ikinci öğe.

        3. numaralı listenin üçüncü maddesi.



        Ve şöyle bir şeye benziyorlar:

        Madde işaretli listeler farklı madde işaretleri kullanabilir. Bir etiketteki işaretçi türünü tanımlamak için

          katma tür özelliği listenin tüm öğeleri için işaretçi türünü ayarlamak veya aynı özelliği etikete eklemek istiyorsak
        • belirli bir öğe için işaretçi türünü ayarlamanız gerekirse. type niteliği aşağıdaki değerleri alabilir:

          • disk dolu daire;
          • daire - daire;
          • kare kare.

          Varsayılan tür özniteliği disktir. Kullanım örneği:


          • Paragraf 1

          • 2. nokta

          • 3. nokta



          • Paragraf 1

          • 2. nokta

          • 3. nokta



          • Paragraf 1

          • 2. nokta

          • 3. nokta

          Tarayıcıda göster:

          Numaralı liste, aşağıdaki işaretçi türlerini belirtmek için kullanılabilen tür özniteliğini de destekler:

          • A - büyük Latin harfleri;
          • a - küçük Latin harfleri;
          • ben - büyük Romen rakamları;
          • i - küçük Romen rakamları;
          • 1 - Arap rakamları.

          Varsayılan olarak, sıralı bir listede, type özniteliği madde işaretlerini Arap rakamlarına ayarlar. type özniteliğine ek olarak, sıralı bir liste şunları destekler: özniteliği başlat, listenin başlayacağı numarayı belirtir. Numaralandırılmış bir liste için HTML5 belirtiminde ayrıca ters öznitelik, numaralandırmayı tersine çeviren . Onlar. 1, 2, 3 yerine liste 3, 2, 1 olarak numaralandırılacaktır. Ancak tersine çevrilmiş öznitelik hala çok az sayıda tarayıcı tarafından desteklenmektedir.

          Listeler iç içe listeler oluşturarak iç içe yerleştirilebilir. iç içe liste elemanların içine yerleştirilmiş

        • harici liste:


          • ilk nokta.

          • ikinci nokta

            • iç içe geçmiş listedeki ilk öğe.

            • iç içe geçmiş listedeki ikinci öğe.

            • iç içe geçmiş listedeki üçüncü öğe.



          • üçüncü nokta.

          Ve tarayıcıda:

          HTML, terimler ve tanımlarının bir listesi olan üçüncü tür bir listeye sahiptir. Bu liste, pair etiketi kullanılarak belirtilir.

          . İçinde "terim - tanım" çiftleri bulunur. Terimler bir çift etiketi içine alınır
          ve tanımlar bir çift etikettedir
          :


          Dönem 1

          tanım 1

          dönem 2

          Tanım 2

          Tarayıcıda göster:

          Web sayfamızda araba sınıflandırması ile ilgili bir paragraf bulunmaktadır. Madde işaretli bir liste kullanarak bu sınıflandırmayı yapalım:


          • Yolcu;

          • Kargo;

          • SUV;

          • Buggy;

          • Toplamak;

          • Spor Dalları;

          • Yarışma.

          Ve sonucu görelim:

          yatay çizgiler

          HTML'de metin bloklarını ayırmak veya ek olarak vurgulamak için tek bir HR etiketi - yatay çizgi. Html kodunda böyle görünüyor:

          İlk paragraf




          İkinci paragraf

          Ve işte nasıl görüntülendiği:

          HTML yatay çizgisi, Web sayfasının tüm genişliği boyunca yatay olarak uzanır ve kullanılan tarayıcıya bağlı olarak bir veya iki piksel kalınlığındadır.

          Yatay bir çizginin görünümünü ayarlamak için nitelikleri kullanabilirsiniz. Etiket


          aşağıdaki özellikleri destekler:

          • hizala - çizginin hizalamasını belirler;
          • color - çizginin rengini ayarlar;
          • boyut - çizgi kalınlığını piksel cinsinden ayarlar;
          • genişlik - çizginin genişliğini piksel cinsinden ayarlar.

          WEB sayfamıza yatay bir çizgi ekleyelim. 1 piksel kalınlığında ve 320 piksel genişliğinde yeşil yapalım:

          Arabalar hakkında web sitesi.


          Otomotiv sitemize hoş geldiniz. Burada arabalar, teknik özellikleri ve özellikleri hakkında birçok ilginç ve faydalı makale bulacaksınız.


          Bilimsel terimlerle, bir araba:


          En az 4 tekerlekli mekanik motorlu izsiz karayolu taşıtı.




          Araba sınıflandırması


          Arabalar aşağıdaki tiplerdendir:



          • Yolcu;

          • Kargo;

          • SUV;

          • Buggy;

          • Toplamak;

          • Spor Dalları;

          • Yarışma.

          Sonuç şöyle bir şey olacak:

          Paragraflar ve başlıklar

          İnternette bilgi sunmanın ana yolu metindir, çoğu insanın aradığı metinsel bilgidir ve özel arama motorları bu aramayı metin sözcükleri ve deyimlerle gerçekleştirir. Bu nedenle, büyük ölçüde sayfalardaki metnin ne kadar yetkin ve uygun bir şekilde yapılandırıldığına bağlı olacaktır - ziyaretçinin sitede oyalanıp oyalanmayacağı veya daha uygun bir bilgi kaynağı aramaya gideceği. Sonuçta, sürekli bir metni okumanın paragraflara ve tematik alt bölümlere ayırmaktan çok daha zor olduğunu kabul etmelisiniz. HTML'de, metnin bu şekilde yapılandırılmasından birkaç etiket sorumludur ve bu derste onlar hakkında konuşacağız.

          Etiket

          Veya sayfayı paragraflara (paragraflara) böleriz

          Hatırlarsanız, etiketiyle

          Bu eğitimde zaten tanıştınız, şimdi onu tamamen incelemenin zamanı geldi. Yani etiket

          Bir HTML sayfasında paragraflar oluşturmaktan sorumludur ve blok elemanı. Umarım blok seviyesi etiketlerin ne olduğunu zaten ezberlemişsinizdir. Evet, ancak kendisinden önce ve sonra satır sonları oluşturmasının yanı sıra, metnin görsel olarak paragraflara bölünmesi nedeniyle kendisinin üstünde ve altında küçük boşluk kenar boşlukları (dış girintiler) ayarlar. Bu alanların yüksekliği bir boş satıra eşittir.

          Şimdi en önemli şey etiket

          Yalnızca satır düzeyinde (satır içi) öğeler içerebilir ve daha fazlasını içeremez. Bu nedenle, örneğin başka bir paragraf içeremez, çünkü

          Bir blok elemanıdır. Pekala, buna tekrar tekrar döneceğiz. Bu arada, etiketi olmayan herhangi bir metin de bir satır içi öğe olarak kabul edilir.

          HTML'deki paragraf örnekleri

          HTML'deki paragraflar

          İlk paragraf.

          İkinci paragraf.

          Tarayıcıda sonuç

          İlk paragraf.

          İkinci paragraf.

          Genel olarak, kapanış etiketi

          ayarlamak gerekli değildir - tarayıcı bir sonraki paragrafla karşılaştığında otomatik olarak bir önceki paragrafı kapatır. Ancak dediğim gibi, tüm isteğe bağlı etiketleri kapatmak daha iyidir.

          Etiket

          Metnin blok içindeki konumunu ayarlayan isteğe bağlı bir hizalama özelliği vardır. yani, bir paragrafın her satırını sayfada ortalayabilir veya normal sol taraf yerine sağ tarafa bastırabilirsiniz. Ama işte kötü şans - hizalama özelliği HTML'nin katı sürümünde değildir ve belki de modern tarayıcılar yakın gelecekte bunu artık desteklemeyecektir. Ve ne yapmalı? Ve şunları yapacağız: sonraki derslerden birinde size içeriğin konumunu yalnızca paragrafların içinde değil, aynı zamanda bir HTML sayfasının herhangi bir blok öğesinin (başlıklar, tablolar, listeler vb.). Ama asıl olan tam olarak anlaşılması ve tüm tarayıcılar tarafından anlaşılacak olmasıdır.

          etiketler

          -

          veya HTML sayfa başlıkları

          Başlıklar HTML'de çok önemli bir rol oynar, bunları kullanarak sayfanın metnini mantıksal parçalara ayırabilir, her birinin önem derecesini vurgulayabilir, bu da ziyaretçilerin ihtiyaç duydukları bilgileri hızlı bir şekilde bulmalarını sağlar. Ayrıca arama motorları (Yandex, Google vb.) başlıklardaki metne daha fazla "ağırlık" verir. Altı tip vardır, burada

          en önemli başlık (birinci seviye, üst) ve

          en önemsiz (altıncı seviye, alt). Örneğin,

          sayfanın başlığı olabilir,

          - bölümleri,

          - alt bölümler vb.

          Başlık etiketleri blok elemanları ve paragraflar gibi yalnızca satır düzeyinde etiketler ve metin içerebilir. Tarayıcılar, başlık metnini farklı boyutlarda (etikete bağlı olarak) kalın yapar ve yine paragraflarda olduğu gibi üstte ve altta boşluk boşlukları ekler.

          HTML Başlık Sözdizimi

          Birinci düzey başlık

          İkinci düzey başlık

          Üçüncü düzey başlık

          Dördüncü düzey başlık

          5. seviye başlığı
          6. seviye başlığı

          Başlık etiketlerinin isteğe bağlı iki özelliği vardır - zaten bildiğiniz eski hizalama ve fareyle başlığın üzerine geldiğinizde bir "pop-up" araç ipucu görüntüleyen başlık özelliği. Paragraflarda olduğu gibi, hizalamayı kullanmayacağız ama yakında başka bir yol öğreneceğiz.

          HTML'de başlıkların kullanımına bir örnek

          HTML'deki başlıklar

          Birinci düzey başlık

          Paragraf.

          İkinci düzey başlık

          Paragraf.

          Paragraf.

          Tarayıcıda sonuç

          Birinci düzey başlık

          Paragraf.

          İkinci düzey başlık

          Paragraf.

          Paragraf.

          Ev ödevi.

          Bu görevde, küçük bir makaleyi taklit eden bir sayfa oluşturmanız, istediğiniz metni yazmanız gerekecek. Yapılması gerekenler hakkında fikir sahibi olmanız için örneğin sonucunu hemen görebilirsiniz.

          1. Son dersteki sayfayı HTML düzenleyicide açın.
          2. Başlıklar yardımıyla

            ,

            Ve

            ikinci bölümde makalenin başlığını, iki bölümünü ve üç alt bölümünü oluşturun.

          3. Fareyi makalenin başlığının üzerine getirdiğinizde ilgili yazının görüntülenmesini sağlayın.
          4. Her bölüm ve alt bölüme bir paragraf yazın.

          Belirli bir stil vermek için metni uygun kapsayıcıya yerleştirmeniz gerekir.

          Tüm biçimlendirme etiketleri üç gruba ayrılabilir:

          1. Başlık etiketleri ( h1-h6).

          2. Ana metnin etiketlerini tasarlayın ( , , ,

          , 
           vesaire.).

          3. Gruplandırma etiketleri (

          ,


          ,
          )

          Başlık etiketleri

          Düz metni belirli bir düzeyde bir başlığa dönüştürün. Etiket

          birinci düzey bir başlık oluşturur - en büyük ve en önemlisi (genellikle sayfadaki makalenin başlığı),
          altıncı seviyenin başlığından sorumludur - en küçük ve en göze çarpmayan. Bu etiketler hem kullanıcılar hem de arama motorları için önemlidir - alt başlıkları olan başlıklar her ikisi tarafından da sevilir. Seviyeler hiyerarşisine uyulmalıdır, yani

          gitmek zorunda

          ve tersi değil.

          Bunun nasıl çalıştığını anlamak için html dosyasına aşağıdaki kodu girin:

          Birinci düzey başlık

          İkinci düzey başlık

          Üçüncü düzey başlık

          4. seviye başlık

          5. seviye başlığı
          6. seviye başlığı

          Tarayıcıda şöyle görünecek:

          Gövde metni tasarım etiketleri

          Karakter düzeyinde biçimlendirmeye izin ver. Bakalım onlarla neler yapabileceğinizi görelim.

          Kalın yazı tipi

          Metne odaklanmak gerekiyor. Arama motorları için de önemlidir, anahtar kelimeleri öne çıkarabilirler.

          Kalın etiketlerden sorumlu Ve .

          Üst simge ve alt simge

          Formüllerde, denklemlerde, bazı miktarların notasyonunda kullanılabilirler.

          Etiket, abonelik oluşturmaktan sorumludur , üst etiket için kullanılır .

          X 1=32 m 2

          Boyutu küçültme

          Metni tüm sayfada ayarlanandan bir eksik yapmanız gerekiyorsa, etiketi kullanmanız gerekir.

          Düz metin. Azaltılmış metin

          Altını çizmek

          Bu tür vurgulama, bir belgede yapılan değişiklikleri belirtmek veya yalnızca metni vurgulamak için kullanılabilir.

          Düz metin. Altı çizili metin.

          Üstü çizili

          Alaka düzeyini zaten kaybetmişse, bilgileri silebilirsiniz. Bu etiket için tasarlandı .

          italik

          Dikkati metne odaklamak için gereklidir ve bir etiketle oluşturulabilir veya .

          bilgisayar metin girişi

          Programın kaynak kodunu ve çalışmasının sonuçlarını bir web sayfasına eklemeniz gerekir. Metnin görsel olarak farklı kısımlarını birbirinden ayırt etmeyi kolaylaştırmak için HTML geliştiricileri bu grubun etiketlerini tanıttı.

          Konteynere program kodu sonlandırılırken değişkenleri bir etiketle vurgulanır , ve yürütme sonucu . Konteyner kullanıcının programla çalışırken klavyeden girmesi gereken metni ve etiketler içine alınmış her şeyi içerir

          , fazladan boşluklar ve satır sonları dahil olmak üzere orijinal biçimi korur.

          Böylece bir, b, c, Burada program yürütme sonucu , Ve bu kullanıcı tarafından girilen metin

          bu şekilde gösteriliyor
          .

          Alıntılar ve tanımlar

          Kod gibi görünecek Böylece , değişkenler aşağıdaki gibi gösterilir: bir, b, c , Burada program yürütme sonucu , Ve bu kullanıcı tarafından girilen metin . Orijinal biçimlendirmeyi koru

           bu şekilde gösteriliyor 
          .

          Blockquote etiketinde alıntı.
          Alıntı kapsayıcısı içindeki bir alıntı.q etiketi ile kısa alıntı.Özel tanım.Kısaltma (STK, IP).

          Genel örnek

          Bir etiketin neyden sorumlu olduğunu ve nasıl çalıştığını daha iyi anlamak için aşağıdaki koda ve yürütme sonucuna bakın.

          yağlı metin etiketlenebilir güçlü Ve B. Arka italik cevap em Ve Ben.

          etiketler alt Ve akşam yemeği oluşturmak için kullanılır daha düşük(X 1…X N) Ve tepe (42=16) indeksler. del dışarı vurur, ins - vurgular.

          etiketler kod, kbd, var Ve örnek nadiren kullanılır ve program listelerini görüntülemek için gereklidir

          kısaltmak kısaltmalar için gerekli ( HTML). Alıntı yapmak için blockquote, cite ve q etiketleri kullanılır ( Zaten gökyüzü sonbaharda nefes alıyordu)

          pre etiketi, boşlukları veya satır sonlarını çıkarmadan metnin orijinal biçimlendirmesini korur.

          Tarayıcı bu kodu şu şekilde yorumlar:

          Gruplandırma etiketleri

          Metnin tek bir sürekli satırda gitmemesi, mantıksal bileşenlere bölünmesi gerekir.

          • Etiketler bir paragraf içerir.

          İlk paragraf

          İkinci paragraf

          • Etiket
            paragraf içinde bir sonraki satıra geçer (satırdan önce girinti olmaz).

          • yatay bir çizgi çizmenizi sağlar. Metni daha görsel olarak ayırmak için kullanabilirsiniz. Öznitellikler Genişlik, boyut, renk, hizalamak Ve gölgesiz sırasıyla çizginin genişliğini, kalınlığını, rengini, hizalamasını ve 3B efektinin olmamasını ayarlayın.

          Çizgi üstü çizgi.


          Çizgi altı çizgi.

          int , double , vb. gibi temel C/C++ türleri. Örneğin, atomik, iş parçacığı açısından güvenli mi?

          veri yarışlarından muaf olup olmadıkları; yani, bir iş parçacığı bu türden bir nesneye yazar ve başka bir iş parçacığı ondan okursa, davranış iyi tanımlanmış mı?

          Değilse, derleyiciye bağlı mı yoksa başka bir şey mi?

          4 57

          Peter Mortensen

          4 cevap:

          bunun yerine std::atomic kullanabilirsiniz veya std::atomik .

          Not: std::atomic, C++11 ile tanıtıldı ve C++11'den önce C++ standardının çoklu iş parçacığının varlığını hiç tanımadığını anlıyorum.

          program yürütme 5.1.2.3

          soyut bir makinenin işlenmesi bir sinyal tarafından kesintiye uğradığında, atomik kilitlenmeyen nesneler veya volatile sig_atomic_t türü olmayan nesnelerin değerleri veya kayan nokta ortamının durumu belirtilmez. Kilitsiz bir atomik nesne veya volatile sig_atomic_t türü olmayan bir tanıtıcı tarafından değiştirilen herhangi bir nesnenin bu değeri, işleyici tarafından bu şekilde değiştirilirse ve orijinaline geri yüklenmezse kayan nokta ortamının durumu gibi, işleyici çıktığında tanımsız hale gelir. durum.

          5.1.2.4 Çok iş parçacıklı yürütmeler ve veri yarışları

          iki ifade değerlendirmesi anlaşmazlık bunlardan biri bir hafıza alanını değiştirirse ve diğeri aynı hafıza alanını okur veya değiştirirse.

          [birkaç sayfa standart - bazı paragraflar açıkça atomik türlere atıfta bulunur]

          program yürütme içerir veri yarışı en az biri atomik olmayan ve hiçbiri diğerinden önce olmayan farklı iş parçacıklarında iki çelişkili eylem içeriyorsa. ne tür bir veri yarışı tanımsız davranışla sonuçlanır.

          işlemci ayrıca, işlemcinin bellek sıralama kısıtlamalarına göre bellek erişimlerini yeniden sıralayabilir. x86 mimarisi için bellek sıralama limitleri, 2212. sayfadan başlayan Intel 64 ve ia32 Mimarileri Yazılım Geliştirme Kılavuzu bölüm 8.2'de bulunabilir.

          ilkel türler (int , char vb.) atomik değildir

          umarım bu açıklar Neden ilkel tipler atomik değildir.

          şimdiye kadar diğer cevaplarda görmediğim ek bilgilerden bahsediliyor:

          std::atomic kullanıyorsanız Örneğin, bool hedef mimari üzerinde etkili bir şekilde atomiktir, bu durumda derleyici yedekli korumalar veya kilitler üretmeyecektir. Basit bir bool ile aynı kod üretilecektir.

          başka bir deyişle, std::atomic kullanmak, yalnızca platformda doğruluk için gerçekten gerekliyse kodu daha az verimli hale getirir. Dolayısıyla bundan kaçınmak için hiçbir sebep yok.