2017-02-22 45 views
0

是的,我知道,這個問題已被問及很多次,一個可能的解決方案是將style="display:block;"添加到鏈接。如何使整個可點擊的表格(表格樣式div)

出於某種原因,這個解決方案不符合表格樣式的DIV工作:

https://jsfiddle.net/exyv8jmw/1/

HTML:

<div class="table"> 
<div class="tablerow"> 

    <div class="left"> 
    <a href="/something.html" style="display:block"> 
    This is a link</a>  
    </div> 

    <div class="right"> 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    </div> 
</div> 
</div> 

CSS:

.table{ 
    width:500px; 
    display:table; 
} 

.tablerow{ 
    display:table-row; 
} 


.left{ 
    width:50%; 
    background:green; 
    display:table-cell; 
    padding:5px; 
} 


.right{ 
    width:50%; 
    display:table-cell; 
    background:red; 
    padding:5px; 
} 

如您所見,空的綠色空間只能水平點擊,但不能垂直點擊。我也試過:

<a href="/something.html" style="display:block"><div class="left">This is a link</div></a> 

但它沒有幫助。

回答

1

您需要將height: 100%;添加到鏈接,.left.tablerow元素。

.table{ 
 
    width:500px; 
 
    display:table; 
 
} 
 

 
.tablerow{ 
 
    display:table-row; 
 
    height: 100%; 
 
} 
 

 

 
.left{ 
 
    width:50%; 
 
    background:green; 
 
    display:table-cell; 
 
    padding:5px; 
 
    height: 100%; 
 
} 
 

 

 
.right{ 
 
    width:50%; 
 
    display:table-cell; 
 
    background:red; 
 
    padding:5px; 
 
}
<div class="table"> 
 
<div class="tablerow"> 
 

 
    <div class="left"> 
 
    <a href="/something.html" style="display:block;height:100%;"> 
 
    This is a link</a>  
 
    </div> 
 
    
 
    <div class="right"> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
 
    </div> 
 
</div> 
 
</div>

+0

它不工作在Firefox:https://jsfiddle.net/exyv8jmw/5/ – yoyoyo

+0

@yoyoyo更新我的答案。在行上,firefox也需要100%的高度https://jsfiddle.net/exyv8jmw/6/ –

0

第一組。左位置相對,然後設置一個標籤位置,以絕對和寬度和高度爲100%。

.table{ 
 
    width:500px; 
 
    display:table; 
 
} 
 

 
.tablerow{ 
 
    display:table-row; 
 
} 
 

 

 
.left{ 
 
    width:50%; 
 
    background:green; 
 
    display:table-cell; 
 
    padding:5px; 
 
    
 
    position: relative; 
 
} 
 
.left a { 
 
    position: absolute; 
 
    top: 0; 
 
    left: 0; 
 
    width: 100%; 
 
    height: 100%; 
 
} 
 

 

 
.right{ 
 
    width:50%; 
 
    display:table-cell; 
 
    background:red; 
 
    padding:5px; 
 
}
<div class="table"> 
 
<div class="tablerow"> 
 

 
    <div class="left"> 
 
    <a href="/something.html" style="display:block"> 
 
    This is a link</a>  
 
    </div> 
 
    
 
    <div class="right"> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
 
    </div> 
 
</div> 
 
</div>

0

你能不能把格的 'a' 元素中?

<a href="/something.html" > 
     <div class="left"> 
       This is a link </div> 
    </a>  
0

應用'left'類的a元素直接,即:

<a href="#" class="left">this is a link</a> 

儘管這不會允許額外的內容,它使錨填充可用空間。

問題的一部分是,默認情況下,錨標記是一個「span」類型標記,它只填充與其內容一樣大的空間,忽略內部div。

您必須將「錨點」標記動作像「塊」樣式元素,而不是其周圍元素或內部元素。

0

您可以將偵聽器添加到div ID。

<div class="table" id="clik"> 

    document.getElementById("clik").addEventListener("click", function(){ 
     // document.location = "/something.html"; 
     alert("hello"); 
    });