จะตั้งค่า a: link height / width ด้วย css ได้อย่างไร?


86

ฉันไม่สามารถกำหนดความสูงและความกว้างของaองค์ประกอบของการนำทางได้

#header div#snav div a{
    width:150px;
    height:77px;
}

#header div#snav div a:link{
    width:150px;
    height:77px;
}


#header div#snav div a:hover{
    height:77px;
    background:#eff1de;
}

มีความคิดอะไรที่ฉันทำผิด?

คำตอบ:


197

เพิ่มการแสดง: บล็อก;

a-tag เป็นองค์ประกอบแบบอินไลน์ดังนั้นความสูงและความกว้างของคุณจึงถูกละเว้น

#header div#snav div a{
    display:block;
    width:150px;
    height:77px;
}

24
บล็อกมีผลข้างเคียงที่จะสร้างบรรทัดใหม่หลังองค์ประกอบ
Cobra_Fast

27

จุดยึดจะต้องเป็นประเภทการแสดงผลที่แตกต่างจากค่าเริ่มต้นเพื่อรับความสูง display:inline-block;หรือdisplay:block;.

ตรวจสอบline-heightสิ่งที่อาจน่าสนใจด้วย


4
line-height ก็เป็นทางออกที่ดีเช่นกัน แต่เมื่อข้อความในลิงค์ยาวเกิน 2 บรรทัดช่องว่างระหว่าง 2 บรรทัดนั้นใหญ่มาก
Stijn Janssen

8

ปัญหาของคุณน่าจะเป็นที่ aองค์ประกอบdisplay: inlineโดยธรรมชาติ คุณไม่สามารถกำหนดความกว้างและความสูงขององค์ประกอบแบบอินไลน์ได้

คุณจะต้องตั้งค่าdisplay: blockบนaแต่จะนำมาซึ่งปัญหาอื่น ๆ เนื่องจากลิงก์เริ่มทำงานเหมือนองค์ประกอบบล็อก วิธีการรักษาที่พบบ่อยที่สุดคือให้พวกfloat: leftเขาเข้าแถวเคียงข้างกัน


1
การลอยพวกมันอาจจะป้องกันไม่ให้องค์ประกอบหลักของพวกเขาขยายออกไปรอบ ๆ พวกเขา
Cobra_Fast

@Cobra ใช่ แต่แก้ไขได้อย่างง่ายดาย ในปี 2554 มีความต้องการ clearfix หรือไม่?
Pekka

1
ดังนั้นเราต้องแก้ไขที่นี่? นั่นฟังดูไม่ดีนัก
Cobra_Fast

5

จากคำจำกัดความของความสูง :

นำไปใช้กับองค์ประกอบทั้งหมดยกเว้นองค์ประกอบแบบอินไลน์คอลัมน์ตารางและกลุ่มคอลัมน์ที่ไม่ถูกแทนที่

aองค์ประกอบโดยค่าเริ่มต้นองค์ประกอบแบบอินไลน์ (และก็ไม่สามารถแทนที่)

คุณจำเป็นต้องเปลี่ยนการแสดงผล (โดยตรงกับคุณสมบัติการแสดงผลหรือทางอ้อมเช่นแบบลอย)


4

ขอบคุณ RandomUs 1r สำหรับการสังเกตนี้:

เปลี่ยนเป็น display: inline-block; แก้ปัญหานั้น - RandomUs1r 14 พ.ค. 56 เวลา 21:59 น

ฉันลองใช้แถบเมนูการนำทางด้านบนด้วยตัวเองดังนี้:

ขั้นแรกจัดรูปแบบองค์ประกอบ "li" ดังนี้:

แสดง: อินไลน์บล็อก;
ความกว้าง: 7em;
จัดข้อความ: ศูนย์;

จากนั้นจัดรูปแบบองค์ประกอบ "a"> ดังนี้:

ความกว้าง: 100%;

ตอนนี้ลิงก์การนำทางมีความกว้างเท่ากันทั้งหมดโดยมีข้อความอยู่ตรงกลางในแต่ละลิงก์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.