2012-01-01 101 views
1

我想從網頁中刪除左上角和左側元素(使用greasemonkey/scriptish),以優化其佈局以在星系選項卡中顯示10.1。使用greasemonkey去除和摺疊元素

該網頁是tvtv.de和我的第一種方法(我是完全新的修補網站的頁面)是:

// ==UserScript== 
// @include  http://www.tvtv.de/* 
// ==/UserScript== 

var elmDeleted = document.getElementById("header"); 
elmDeleted.parentNode.removeChild(elmDeleted); 
elmDeleted = document.getElementById("main_left"); 
elmDeleted.parentNode.removeChild(elmDeleted); 

可疑元素被隱沒,但仍使用原空間佈局。 我也嘗試了不同的方法,比如將元素寬度設置爲零,隱藏元素(element.style.display =「none」)等,但結果總是相同的。

是否有可能'摺疊'的元素,所以他們不會在頁面佈局中使用任何空間?

任何幫助將不勝感激,在此先感謝。

回答

2

您正在正確移除/隱藏元素。如果他們相對定位,那麼他們會崩潰以填補可用空間。

在這個特定的網站的情況下,主要內容是絕對定位。要摺疊的元素使用:

var css = '#main_left, #main_right { top: 0; }', 
    style = document.createElement('style'); 
    style.appendChild(document.createTextNode(css)); 
document.body.appendChild(style); 
+0

我需要添加'left:0',但現在它完美的工作!非常感謝你。 – raines 2012-01-01 22:20:47

2

其實它不佔用任何空間,因爲它不再存在。

頁面其餘部分不移動的原因是因爲這些元素明確地位於距頂部100像素的位置。見,例如,對於#main_right的風格styles.css

#main_right 
{ 
    background-color: #FFFFFF; 
    /* -------------------- */ 
    position: absolute; 
    left: 180px; 
    right: 0px; 
    top: 100px; 
    /* -------------------- */ 
    bottom: 21px; 
    overflow: visible; 
} 

您必須手動調整的這些定位。