Sepertinya ada beberapa teknik berbeda di luar sana, jadi saya berharap untuk mendapatkan jawaban "pasti" pada ...
Di situs web, merupakan praktik umum untuk membuat logo yang tertaut ke beranda. Saya ingin melakukan hal yang sama, sementara mengoptimalkan yang terbaik untuk mesin pencari, pembaca layar, IE 6+, dan browser yang telah menonaktifkan CSS dan / atau gambar.
Contoh Satu: Tidak menggunakan tag h1. Tidak sebagus SEO, kan?
<div id="logo">
<a href="">
<img src="logo.png" alt="Stack Overflow" />
</a>
</div>
Contoh Dua: Ditemukan di suatu tempat. CSS tampaknya agak berantakan.
<h1 id="logo">
<a href="">Stack Overflow</a>
</h1>
/* css */
#logo {
padding: 70px 0 0 0;
overflow: hidden;
background-image: url("logo.png");
background-repeat: no-repeat;
height: 0px !important;
height /**/:70px;
}
Contoh Tiga: HTML yang sama, pendekatan yang berbeda menggunakan indentasi teks. Ini adalah pendekatan "Phark" untuk penggantian gambar.
<h1 id="logo">
<a href="">Stack Overflow</a>
</h1>
/* css */
#logo {
background: transparent url("logo.png") no-repeat scroll 0% 0%;
width: 250px;
height: 70px;
text-indent: -3333px;
border: 0;
margin: 0;
}
#logo a {
display: block;
width: 280px; /* larger than actual image? */
height: 120px;
text-decoration: none;
border: 0;
}
Contoh Empat: Metode Leahy-Langridge-Jefferies . Menampilkan ketika gambar dan / atau css dimatikan.
<h1 id="logo" class="logo">
<a href="">Stack Overflow</a>
</h1>
/* css */
h1.logo {
margin-top: 15px; /* for this particular site, set this as you like */
position: relative; /* allows child element to be placed positioned wrt this one */
overflow:hidden; /* don’t let content leak beyond the header - not needed as height of anchor will cover whole header */
padding: 0; /* needed to counter the reset/default styles */
}
h1.logo a {
position: absolute; /* defaults to top:0, left:0 and so these can be left out */
height: 0; /* hiding text, prevent it peaking out */
width: 100%; /* 686px; fill the parent element */
background-position: left top;
background-repeat: no-repeat;
}
h1#logo {
height: 60px; /* height of replacement image */
}
h1#logo a {
padding-top: 60px; /* height of the replacement image */
background-image: url("logo.png"); /* the replacement image */
}
Metode apa yang terbaik untuk hal semacam ini? Harap berikan html dan css dalam jawaban Anda.
title
atribut seharusnya ada di<a>
?Jawaban:
Anda melewatkan opsi:
Judul dalam href dan img to h1 sangat, sangat penting!
sumber
Saya melakukannya sebagian besar seperti yang di atas, tetapi untuk alasan aksesibilitas, saya perlu mendukung kemungkinan gambar dinonaktifkan di browser. Jadi, alih-alih inden teks dari tautan dari halaman, saya menutupinya dengan benar-benar memposisikan
untuk lebar dan tinggi penuh<span>
<a>
dan menggunakanz-index
untuk menempatkannya di atas teks tautan dalam urutan susun.Harganya satu kosong
<span>
, tapi saya bersedia memilikinya di sana untuk sesuatu yang sama pentingnya dengan<h1>
.sumber
Jika alasan aksesibilitas penting maka gunakan varian pertama (ketika pelanggan ingin melihat gambar tanpa gaya)
Tidak perlu memenuhi persyaratan SEO imajiner, karena kode HTML di atas memiliki struktur yang benar dan hanya Anda yang harus memutuskan apakah ini cocok untuk pengunjung Anda.
Anda juga dapat menggunakan varian dengan kode HTML yang lebih sedikit
Harap perhatikan bahwa saya telah menghapus semua gaya dan peretas CSS karena tidak sesuai dengan tugas. Mereka mungkin berguna dalam kasus-kasus tertentu saja.
sumber
display:none
tidak dapat di akses.Berdentang agak terlambat di sini, tetapi tidak bisa menahan diri.
Pertanyaan Anda setengah cacat. Biarkan saya jelaskan:
Bagian pertama dari pertanyaan Anda, tentang penggantian gambar, adalah pertanyaan yang valid, dan pendapat saya adalah bahwa untuk logo, gambar sederhana; atribut alt; dan CSS untuk penentuan posisi cukup.
Bagian kedua dari pertanyaan Anda, pada "nilai SEO" dari H1 untuk logo adalah pendekatan yang salah untuk memutuskan elemen mana yang akan digunakan untuk berbagai jenis konten.
Logo bukanlah heading utama, atau bahkan heading sama sekali, dan menggunakan elemen H1 untuk menandai logo pada setiap halaman situs Anda akan melakukan (sedikit) lebih banyak ruginya daripada baik untuk peringkat Anda. Secara semantik, pos (H1 - H6) sesuai untuk, yah, hanya itu: pos dan subpos untuk konten.
Di HTML5, lebih dari satu tajuk diizinkan per halaman, tetapi logo tidak layak mendapatkannya. Logo Anda, yang mungkin berupa widget hijau kabur dan beberapa teks berada dalam gambar di samping header karena suatu alasan - itu semacam "cap", bukan elemen hierarkis untuk menyusun konten Anda. Yang pertama (apakah Anda menggunakan lebih banyak tergantung pada hierarki heading Anda) H1 dari setiap halaman situs Anda harus menjadi judul pokok bahasannya. Judul utama utama halaman indeks Anda mungkin 'Sumber Terbaik Untuk Widget Hijau Fuzzy di NYC'. Judul utama pada halaman lain mungkin 'Detail Pengiriman untuk Widget Fuzzy Kami'. Di halaman lain, mungkin 'Tentang Bert's Fuzzy Widgets Inc.'. Anda mendapatkan idenya.
Catatan samping: Kedengarannya luar biasa, jangan lihat sumber properti web milik Google untuk contoh markup yang benar. Ini adalah keseluruhan pos untuk dirinya sendiri.
Untuk mendapatkan "nilai SEO" maksimal dari HTML dan elemen-elemennya, lihat spesifikasi HTML5 , dan buat keputusan markup berdasarkan semantik dan nilai (HTML) untuk pengguna sebelum mesin pencari, dan Anda akan lebih sukses dengan SEO
sumber
Saya pikir Anda akan tertarik pada debat H1 . Ini perdebatan tentang apakah menggunakan elemen h1 untuk judul halaman atau untuk logo.
Secara pribadi saya akan pergi dengan saran pertama Anda, sesuatu seperti ini:
Tentu saja ini tergantung pada apakah desain Anda menggunakan judul halaman tetapi ini adalah sikap saya tentang masalah ini.
sumber
Ini adalah pilihan yang baik untuk SEO karena SEO memberikan prioritas tinggi pada tag H1, di dalam tag h1 haruslah nama situs Anda. Menggunakan metode ini jika Anda mencari nama situs di SEO, itu akan menampilkan logo situs Anda juga.
Anda ingin menyembunyikan nama situs ATAU teks, silakan gunakan indentasi teks dalam nilai negatif. ex
sumber
Anda melewatkan judul dalam
<a>
elemen.Saya menyarankan untuk meletakkan judul di
<a>
elemen karena klien ingin tahu apa arti gambar itu. Karena Anda telah menetapkantext-indent
untuk pengujian<h1>
demikian, pengguna ujung depan itu bisa mendapatkan informasi logo utama ketika mereka berada di logo.sumber
Bagaimana W3C?
Lihat saja https://www.w3.org/ . Gambar memiliki
z-index:1
, teks ada di sini tetapi di belakang karenaz-index:0
digabungkan keposition: absolute;
HTML asli:
CSS asli:
sumber
Satu hal yang belum disentuh oleh seseorang adalah fakta bahwa atribut h1 harus spesifik untuk setiap halaman dan menggunakan logo situs akan secara efektif mereplikasi H1 pada setiap halaman situs.
Saya suka menggunakan indeks az tersembunyi h1 untuk setiap halaman karena SEO terbaik h1 sering bukan yang terbaik untuk penjualan atau nilai estetika.
sumber
Metode baru (Keller) seharusnya meningkatkan kecepatan dibandingkan metode -9999px:
direkomendasikan di sini: http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/
sumber
Saya tidak tahu tapi ini format yang digunakan ...
Sederhana dan tidak merusak situs saya sejauh yang saya lihat. Anda bisa css tapi saya tidak melihatnya memuat lebih cepat.
sumber
Untuk alasan SEO:
sumber
Setelah membaca solusi di atas, saya menggunakan solusi CSS Grid.
sumber
sumber
sumber