2012-07-10 6 views
8

Oto dobry artykuł na temat tworzenia powiązań wewnątrz większych obszarach klikalne:Linki wewnątrz większych obszarów klikalne (CSS Only)

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

To rozwiązanie wymaga JavaScript. Pod koniec artykułu znajduje się zepsuty link do rozwiązania tylko CSS (więc najwyraźniej można to zrobić), ale nie mogę się domyślić, jak to zrobić tylko z CSS. Jakieś pomysły?

Links inside larger clickable area

+0

Więc każdy z czerwonymi obszarów są klikalne? Jak duży zielony teren? –

+0

Tak, zgadza się. Oczywiście możesz pokroić duży zielony obszar na dwie połówki, aby były oddzielne, ale wizualnie popłynęły razem, ale jeśli chcesz mieć efekt: hover do zielonego obszaru, nie masz szczęścia bez JavaScriptu. –

+0

@danielfaraday - Myślę, że krojenie jest tu właściwym rozwiązaniem. Posiadanie sąsiadujących ze sobą klikalnych obszarów bez luki może prowadzić do mylących błędnych kliknięć. Problem z stylizacją, o którym wspomniałeś, można znaleźć w pobliżu, zobacz moją odpowiedź poniżej: – Gareth

Odpowiedz

7

Nie wydaje mi się to zbyt trudne (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

Wow, znacznik jest również ważny! Kluczem jest ustawienie "line-height: 100%" na "zewnętrznym" łączu. Bardzo fajny. –

+0

cóż nie, to tylko jeden prosty sposób wyśrodkowania jednego wiersza tekstu w jego bloku macierzystym (na przykład nie działałby z 2 liniami tekstu). Jeśli martwisz się tym, to jest to 'display: block' na górnym łączu, co jest ważne - po tym możesz zrobić, co chcesz, za pomocą linku, aby zmienić jego rozmiar. – Gareth

+0

Ach, rozumiem. Dzięki. –

2

spróbować http://jsfiddle.net/5MkVW/ I szybko umieścić go razem w ciągu ostatnich 5 minut w pracy, może być nieco niechlujny ale mieć go.

Powiązane problemy