2012-07-10 24 views
8

Dưới đây là một bài viết tốt vào việc tạo ra các liên kết bên trong khu vực có thể click lớn hơn:Liên kết bên trong khu vực có thể click lớn hơn (CSS Only)

http://css-tricks.com/links-inside-of-larger-clickable-areas/

Giải pháp này cần JavaScript. Ở cuối bài viết, có một liên kết bị hỏng đến một giải pháp chỉ CSS (vì vậy dường như nó có thể được thực hiện), nhưng tôi không thể tìm ra cách thức này sẽ được thực hiện chỉ với CSS. Bất kỳ ý tưởng?

Links inside larger clickable area

+0

Vì vậy, mỗi người trong số các lĩnh vực màu đỏ đều có thể click? Như là khu vực xanh lớn? –

+0

Vâng, đúng vậy. Tất nhiên, bạn chỉ có thể cắt phần lớn màu xanh lá cây thành hai nửa sao cho chúng tách biệt nhưng chảy cùng nhau một cách trực quan, nhưng sau đó nếu bạn muốn có: hiệu ứng di chuột đến vùng màu xanh lá cây, bạn sẽ không may mắn khi sử dụng JavaScript. –

+0

@danielfaraday - Tôi nghĩ việc cắt lát là giải pháp đúng ở đây. Có các khu vực có thể nhấp liền kề không có khoảng cách có thể dẫn đến những nhầm lẫn khó hiểu. Vấn đề về kiểu dáng mà bạn đề cập có thể xảy ra, hãy xem câu trả lời của tôi bên dưới – Gareth

Trả lời

7

Không quá khó với tôi (JSFiddle).

HTML:

<header> 
    <a href="#1">Clickable</a> 
    <nav> 
     <ul> 
      <li> 
       <a href="#2">Clickable</a> 
      </li> 
      <li> 
       <a href="#3">Clickable</a> 
      </li> 
      <li> 
       <a href="#4">Clickable</a> 
      </li> 
      <li> 
       <a href="#5">Clickable</a> 
      </li> 
     </ul> 
    </nav> 
</header> 
​ 

CSS:

a { color: #f4ebd4; font-family: sans-serif; text-decoration: none; text-transform: uppercase; font-size: 0.8em; } 

header { text-align: center; } 

header > a { display: block; line-height: 100px; } 

header > a, header > a + nav { background: #4b885c; } 
a:hover, a:hover + nav { background: blue; } 

nav ul { display: table; width: 100%; } 
nav li { display: table-cell; } 
nav a { display: block; background: #a51d2c; padding: 10px 20px; margin: 10px; } 
​ 
+0

Chà, đánh dấu cũng hợp lệ! Điều quan trọng là thiết lập 'line-height: 100%' trên liên kết 'outer'. Rất tuyệt. –

+0

cũng không, đó chỉ là một cách đơn giản để căn giữa một dòng văn bản trong khối chính của nó (nó sẽ không hoạt động với 2 dòng văn bản chẳng hạn). Nếu đó là tất cả những gì bạn lo lắng thì đó là 'display: block' trên liên kết hàng đầu quan trọng - sau đó bạn có thể làm những gì bạn muốn với liên kết để kích thước nó như thế nào bạn muốn – Gareth

+0

Ah, tôi hiểu. Cảm ơn. –

2

thử này http://jsfiddle.net/5MkVW/ tôi nhanh chóng đặt nó lại với nhau trong 5 phút cuối cùng tại nơi làm việc, có thể là một chút lộn xộn nhưng có một đi.

Các vấn đề liên quan