2012-01-25 14 views
9

Tôi đặt một hình ảnh bên trong thẻ. nhưng khi tôi đưa đường viền cho hình ảnh và thẻ. Thẻ A chiếm thêm không gian. nó không phải là xung quanh hình ảnh. Làm thế nào để vượt qua những không gian thêm bằng thẻ 'a'. tôi đang chỉ một thẻ màu đỏ.một thẻ chiếm thêm không gian trong html

html của tôi:

<a href="#"><img src="http://img165.imageshack.us/img165/1043/burnhr6.png"/></a> 

Css:

img 
{ 
    border:1px solid black; 
} 
a 
{ 
    border:1px solid red; 
} 

http://jsfiddle.net/rEPXY/2/

+1

HTML duy nhất trong bản trình diễn của bạn là: ''. Tôi không chắc chắn phải làm gì .. – thirtydot

+0

soryy .. tôi đã cập nhật – Anish

Trả lời

3

Tùy thuộc vào cách hình ảnh này sẽ được bố trí trên website của bạn, bạn có thể sửa lỗi này bằng cách thả nổi <a><img> thẻ. Xem jsfiddle sửa đổi cho một ví dụ:

Html:

<a href="#"><img src="http://img165.imageshack.us/img165/1043/burnhr6.png"/></a> 

Css:

img { 
    border:1px solid black; 
    float: left; 
} 

a { 
    border:1px solid red; 
    float: left; 
} 

www.jsfiddle.net/rEPXY/9

+0

+1 mike trả lời tốt :) Đã thêm giải pháp của bạn vào bài đăng. (Để đảm bảo bài đăng này là độc lập) – gideon

+0

Âm thanh tốt, cảm ơn! –

+0

Cảm ơn .. Nó hoạt động nhưng nó ảnh hưởng đến yếu tố khác mà tôi không muốn trôi nổi. Nhưng tôi có thể cung cấp cho một số id hoặc lớp học cho điều đó. nó tốn thời gian .. Bất kỳ cách nào cảm ơn cho mã của bạn ... – Anish

1

Những gì tôi không hiểu là tại sao bạn có một đường viền trên thẻ. Tôi đoán khi bạn thêm đường viền, thẻ sẽ được trình duyệt hiểu là phần tử có nội dung trong đó và do đó, nó có thể phân bổ chiều cao dòng mặc định và điều chỉnh chiều rộng để vừa với nội dung bên trong thẻ.

+0

tôi không sử dụng đường viền trong mã ban đầu của tôi. tôi chỉ sử dụng ở đây để đề cập đến không gian thêm. – Anish

2

sống Ví dụ: http://jsfiddle.net/rEPXY/18/

hình ảnh được coi là inline, vì vậy đi của nó phải tuân theo font-size và dòng cao, cùng với ngắt dòng. Thay đổi bản chất của hình ảnh và vùng chứa của nó và bạn sẽ tốt. CSS dưới đây cho thẻ <a> đang sử dụng inline-block nhưng bạn cũng có thể thay đổi nó để block với một width tài sản

Nếu bạn nổi thẻ <a> quá, đi công việc trở nên rắc rối class nó với các yếu tố khác.

img 
{ 
    border:1px solid black;float:left; 
} 
a 
{ 
    border:1px solid red;display:inline-block; 
} 
2

According to this, bạn có thể giải quyết nó bằng cách thêm các nguyên tắc sau:

a img {vertical-align:bottom} 

Đó dường như làm việc cho tôi trong jsfiddle của bạn.