天天看點

Drupal 7 建站學習手記(五):HTML文檔流overflow的問題

項目要求網站首頁放views生成的區塊,并且要求有<code>更多</code>連結。

views生成的區塊預設的<code>更多</code>連結隻能選在清單上方和下方

下圖是預設在上方的樣式圖:

Drupal 7 建站學習手記(五):HTML文檔流overflow的問題

為了美觀,我将<code>更多</code>連結上移了若幹個像素:

效果圖:

Drupal 7 建站學習手記(五):HTML文檔流overflow的問題

然而,當我在這個區塊外面再套一層區塊時,

(比如我這裡用了<code>quicktabs</code>子產品,實際上是一個嵌套區塊)

這個<code>更多</code>連結怎麼都不顯示了:

Drupal 7 建站學習手記(五):HTML文檔流overflow的問題

第一反應是z-index的問題,設了z-index還是不顯示

google一下,覺得有可能是<code>position: relative</code>的問題

将其所有父<code>div</code>标簽全部加上<code>position: relative</code>屬性,仍然不顯示

真是百思不得其解

糾結了很久以後,最終将目标鎖定在了父<code>div</code>标簽的<code>overflow: hidden</code>屬性上

css <code>overflow</code>屬性的定義:

描述

visible

預設值。内容不會被修剪,會呈現在元素框之外。

hidden

内容會被修剪,并且其餘内容是不可見的。

scroll

内容會被修剪,但是浏覽器會顯示滾動條以便檢視其餘的内容。

auto

如果内容被修剪,則浏覽器會顯示滾動條以便檢視其餘的内容。

inherit

規定應該從父元素繼承 overflow 屬性的值。

<code>quicktabs</code>子產品的外層區塊使用了<code>overflow: hidden</code>屬性

内層元素“溢出”時,内容被div修剪掉了。

它的本意可能是為了不讓内層的區塊超出外層區塊的大小,而打亂整個html文檔流。

但是我這裡的需求恰好就是要讓内層的元素“溢出”來。

将<code>quicktabs</code>外層區塊div元素的<code>overflow: hidden</code>改為<code>visible</code>就行了:

Drupal 7 建站學習手記(五):HTML文檔流overflow的問題

問題解決!

本文首發,轉載請注明。