2012-01-01 66 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; 
} 

您必须手动调整的这些定位。