0

我正在努力将设计好的网页布局变为现实。该设计可能有点不寻常,所以我不确定是否可以实现。基本上,我将有一个 900 像素的固定宽度内容框。内容框将位于页面正文的中间。我想向页面添加两个垂直列,并带有褪色的 png。左侧的 png 将从左侧的纯黑色变为右侧的透明。右侧的 png 将从右侧的纯黑色渐变为左侧的透明。这两个 png 的宽度分别为 250 像素。一旦所有东西都定位好,布局应该看起来像一张在左右边缘褪色的纸。但是,诀窍在于重新调整页面大小。我想确保当屏幕宽度小于 1500 像素时(两列都部分在屏幕之外),列不会在内容框下方滑动,而只是缩小到零。请考虑下面的图片。黑色轮廓是屏幕,蓝色是内容,红色是列。当屏幕为 1500px 宽时,列和内容对齐良好。幻觉(没有边界)是一个褪色的图像。![屏幕宽度为 1500px 时的布局][1] 当屏幕被拉伸时,列会分开,但仍会保持褪色的外观。![屏幕宽度超过 1500px 时的布局][2] 最后,当屏幕宽度小于 1500px 时,列会缩小,但每列的背景图像会以不破坏褪色外观的方式附加(例如, 左栏缩小并且黑色更靠近内容框的左侧是不正确的)。![屏幕宽度小于 1500px 时的布局][3] 考虑下面的图像。黑色轮廓是屏幕,蓝色是内容,红色是列。当屏幕为 1500px 宽时,列和内容对齐良好。幻觉(没有边界)是一个褪色的图像。![屏幕宽度为 1500px 时的布局][1] 当屏幕被拉伸时,列会分开,但仍会保持褪色的外观。![屏幕宽度超过 1500px 时的布局][2] 最后,当屏幕宽度小于 1500px 时,列会缩小,但每列的背景图像会以不破坏褪色外观的方式附加(例如, 左栏缩小并且黑色更靠近内容框的左侧是不正确的)。![屏幕宽度小于 1500px 时的布局][3] 考虑下面的图像。黑色轮廓是屏幕,蓝色是内容,红色是列。当屏幕为 1500px 宽时,列和内容对齐良好。幻觉(没有边界)是一个褪色的图像。![屏幕宽度为 1500px 时的布局][1] 当屏幕被拉伸时,列会分开,但仍会保持褪色的外观。![屏幕宽度超过 1500px 时的布局][2] 最后,当屏幕宽度小于 1500px 时,列会缩小,但每列的背景图像会以不破坏褪色外观的方式附加(例如, 左栏缩小并且黑色更靠近内容框的左侧是不正确的)。![屏幕宽度小于 1500px 时的布局][3] 当屏幕为 1500px 宽时,列和内容对齐良好。幻觉(没有边界)是一个褪色的图像。![屏幕宽度为 1500px 时的布局][1] 当屏幕被拉伸时,列会分开,但仍会保持褪色的外观。![屏幕宽度超过 1500px 时的布局][2] 最后,当屏幕宽度小于 1500px 时,列会缩小,但每列的背景图像会以不破坏褪色外观的方式附加(例如, 左栏缩小并且黑色更靠近内容框的左侧是不正确的)。![屏幕宽度小于 1500px 时的布局][3] 当屏幕为 1500px 宽时,列和内容对齐良好。幻觉(没有边界)是一个褪色的图像。![屏幕宽度为 1500px 时的布局][1] 当屏幕被拉伸时,列会分开,但仍会保持褪色的外观。![屏幕宽度超过 1500px 时的布局][2] 最后,当屏幕宽度小于 1500px 时,列会缩小,但每列的背景图像会以不破坏褪色外观的方式附加(例如, 左栏缩小并且黑色更靠近内容框的左侧是不正确的)。![屏幕宽度小于 1500px 时的布局][3] 柱子分开了,但仍然保持褪色的外观。![屏幕宽度超过 1500px 时的布局][2] 最后,当屏幕宽度小于 1500px 时,列会缩小,但每列的背景图像会以不破坏褪色外观的方式附加(例如, 左栏缩小并且黑色更靠近内容框的左侧是不正确的)。![屏幕宽度小于 1500px 时的布局][3] 柱子分开了,但仍然保持褪色的外观。![屏幕宽度超过 1500px 时的布局][2] 最后,当屏幕宽度小于 1500px 时,列会缩小,但每列的背景图像会以不破坏褪色外观的方式附加(例如, 左栏缩小并且黑色更靠近内容框的左侧是不正确的)。![屏幕宽度小于 1500px 时的布局][3]

** 无法发布图片 :(

4

1 回答 1

0

最好是 jquery 和 css3 的混合。

Jquery 将允许您保持主要内容居中并在两侧都有一个 div。而 CSS3 将允许您在不需要图像的情况下在两侧都有渐变。唯一的缺点是,如果浏览器不兼容 CSS3,它将不会显示渐变。只有一个不符合标准的是 IE8 和更早版本。但是有一些插件会有所帮助(Modenizr 和 IE Chrome Tab)

jQuery

$(document).ready(function(){
 windowWidth = $(window).width();
 divWidth = (windowWidth - 900) / 2;
 $('#left_container').css({width: divWidth+"px"});
 $('#right_container').css({width: divWidth+"px"});
});

$(window).resize(function() {
 windowWidth = $(window).width();
 divWidth = (windowWidth - 900) / 2;
 $('#left_container').css({width: divWidth+"px"});
 $('#right_container').css({width: divWidth+"px"});
});

左 div CSS

background-image: linear-gradient(90 , #FFFFFF 0%, #000000 52%);
background-image: -o-linear-gradient(90 , #FFFFFF 0%, #000000 52%);
background-image: -moz-linear-gradient(90 , #FFFFFF 0%, #000000 52%);
background-image: -webkit-linear-gradient(90 , #FFFFFF 0%, #000000 52%);
background-image: -ms-linear-gradient(90 , #FFFFFF 0%, #000000 52%);

background-image: -webkit-gradient(
 linear,
 90 90,
 right 90,
 color-stop(0, #FFFFFF),
 color-stop(0.52, #000000)
);

右 div CSS

background-image: linear-gradient(270 , #FFFFFF 0%, #000000 52%);
background-image: -o-linear-gradient(270 , #FFFFFF 0%, #000000 52%);
background-image: -moz-linear-gradient(270 , #FFFFFF 0%, #000000 52%);
background-image: -webkit-linear-gradient(270 , #FFFFFF 0%, #000000 52%);
background-image: -ms-linear-gradient(270 , #FFFFFF 0%, #000000 52%);

background-image: -webkit-gradient(
 linear,
 270 270,
 left 270,
 color-stop(0, #FFFFFF),
 color-stop(0.52, #000000)
);
于 2011-11-08T02:33:12.930 回答