2013-03-18 58 views
1

我一直在用php制作一个画廊。前段时间,我使用表格进行布局。它制定了超级。现在,不建议使用表格进行布局,并且不推荐使用表格(我不明白为什么,如果有人可以向我解释这个,谢谢)。所以,我试图从表格更改布局到div,我有很多问题(有人可以推荐一个很好的参考如何使用CSS来做出一个良好的布局?)。到目前为止,我管理这个:http://jsfiddle.net/hochvater/4DbUU/。我的第一个问题是:我如何让#panel_poze div显示在容器div的顶部,粘贴到#panel_albume(就像现在这样)?我不明白为什么#panel_albume与它粘贴到的div所包含的第三个div排成一行(#panel_albume)。我的第二个问题是:我不能把大桌子(你可以很容易地想象出div的结构如何看起来)放入一个容器div中,并保持原样......这仍然是考虑“弃用”还是不推荐?php画廊中的css布局

CSS代码:

body { 
    background-color: black; 
    color: white; 
} 
@font-face { 
    font-family:"john_handy"; 
    src: url("john_handy.eot"); 
    src: local("¢"), url("john_handy.woff") format("woff"), url("john_handy.TTF") format("opentype"), url("john_handy.svg#john_handy") format("svg"); 
} 
@font-face { 
    font-family:"bradley_hand"; 
    src: url("bradley_hand.eot"); 
    src: local("¢"), url("bradley_hand.woff") format("woff"), url("bradley_hand.TTF") format("opentype"), url("bradley_hand.svg#bradley_hand") format("svg"); 
} 
a:link { 
    color:white; 
} 
/* unvisited link */ 
a:visited { 
    color:white; 
} 
/* visited link */ 
a:hover { 
    color:red; 
} 
/* mouse over link */ 
a:active { 
    color:blue; 
} 
/* selected link */ 
.fonty { 
    text-align:center; 
    font: italic 30px john_handy, serif; 
} 
a.fonty { 
    font-style: normal; 
    font-size:20px; 
} 
#pp { 
    margin: 15% auto; 
    max-width:80%; 
    min-width:850px; 
    text-align: center; 
    white-space:nowrap; 
} 
.sec { 
    position: static; 
    margin: 0% 4%; 
    max-width: 20%; 
    min-width: 200px; 
    display: inline-block; 
} 
.imageOff { 
    border: 3px solid transparent; 
    margin: auto; 
} 
.imageOn { 
    border: 3px solid red; 
    opacity: 0.7; 
    filter: alpha(opacity=70); 
    margin: auto; 
} 
.selected { 
    padding: 2px; 
    border: 1px solid red; 
} 
.submit { 
    /*margin: 0;*/ 
    border: none; 
    /*padding: 0;*/ 
    background: black; 
    font:normal 20px john_handy, serif; 
    color:white; 
} 
.subsel { 
    color:red; 
} 
.submit:hover { 
    color:red; 
} 
.poze_albume { 
    border: 1px solid red; 
    height: 250px; 
    width: 200px; 
} 
#panel_poze { 
    border: 1px solid blue; 
    width: 70%; 
    min-width: 400px; 
    display: inline-block; 
    height: 100px; 
} 
#panel_albume { 
    border: 1px solid yellow; 
    display:inline-block; 
} 
#container { 
    text-align: center; 
    width: 100%; 
    border: 1px solid white; 
    min-width: 700px; 
} 
.album { 
} 

的画廊CODE:

<?php session_start(); ?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html> 

<head> 
<link rel="stylesheet" type="text/css" href="./zastyle.css" /> 
</head> 

<body><!-- oncontextmenu="return false;"> --> 

<h1 class="fonty">Portofolio</h1> 

<?php 
if (!isset($_POST['restart'])) 
{ 
?> 

<div id="pp"> 
    <div class="sec "> 
    <form action="./galerie.php" method="post" enctype="multipart/form-data"> 
     <input class="imageOff" onmouseover="this.className='imageOn'" onmouseout="this.className='imageOff'" type="image" src="./studio/photoshoot.JPG" title="Studio Photography" alt="Studio Photography" /> 
     <input type="hidden" name="album" value="studio" /> 
     <input type="hidden" name="restart" value="1"/> 
     <br /> 
     <input type="submit" class="submit" value="Studio Photography" /> 
    </form> 
    </div> 
    <div class="sec "> 
    <form action="./galerie.php" method="post" enctype="multipart/form-data"> 
     <input class="imageOff" onmouseover="this.className='imageOn'" onmouseout="this.className='imageOff'" type="image" src="./outdoor_lifestyle/lifestyle.jpg" title="Outdoor and Lifestyle Photography" alt="Outdoor and Lifestyle Photography" /> 
     <input type="hidden" name="album" value="outdoor" /> 
     <input type="hidden" name="restart" value="1"/> 
     <br /> 
     <input type="submit" class="submit" value="Outdoor and Lifestyle" /> 
    </form> 
    </div> 
    <div class="sec " > 
    <form action="./galerie.php" method="post" enctype="multipart/form-data"> 
     <input class="imageOff" onmouseover="this.className='imageOn'" onmouseout="this.className='imageOff'" type="image" src="./landscapes/landscapes.jpg" title="Landscapes" alt="Landscapes" class="album" /> 
     <input type="hidden" name="album" value="landscapes" /> 
     <input type="hidden" name="restart" value="1" /> 
     <br /> 
     <input type="submit" class="submit" value="Landscapes" /> 
    </form> 
    </div> 
    </form> 
</div> 

<?php //require("za_menu.php"); ?> 

<?php 
} 
if (isset($_POST['restart'])&&$_POST['restart']==1){ 
?> 

<div id="container"> 
    <div id="panel_albume"> 
     <div class="poze_albume"> 
     <form action="./galerie.php" method="post" enctype="multipart/form-data"> 
      <input class="imageOff <?php 
      if($_POST['album']=='studio') echo 'selected'; 
      ?>" onmouseover="this.className='imageOn'" onmouseout="this.className='imageOff <?php 
      if($_POST['album']=='studio') echo 'selected'; 
      ?>'" type="image" src="./studio/photoshoot.JPG" title="Studio Photography" alt="Studio Photography" /> 
      <input type="hidden" name="album" value="studio" /> 
      <input type="hidden" name="restart" value="1" /> 
      <br /> 
      <input type="submit" class="submit <?php 
      if($_POST['album']=='studio') echo 'subsel'; 
      ?>" value="Studio Photography" /> 
     </form> 
     </div> 
     <div class="poze_albume"> 
     <form action="./galerie.php" method="post" enctype="multipart/form-data"> 
      <input class="imageOff <?php 
      if($_POST['album']=='outdoor') echo 'selected'; 
      ?>" onmouseover="this.className='imageOn'" onmouseout="this.className='imageOff <?php 
      if($_POST['album']=='outdoor') echo 'selected'; 
      ?>'" type="image" src="./outdoor_lifestyle/lifestyle.jpg" title="Outdoor and Lifestyle Photography" alt="Outdoor and Lifestyle Photography" /> 
      <input type="hidden" name="album" value="outdoor" /> 
      <input type="hidden" name="restart" value="1" /> 
      <br /> 
      <input type="submit" class="submit <?php 
      if($_POST['album']=='outdoor') echo 'subsel'; 
      ?>" value="Outdoor and Lifestyle" /> 
     </form> 
     </div> 
     <div class="poze_albume"> 
     <form action="./galerie.php" method="post" enctype="multipart/form-data"> 
      <input class="imageOff <?php 
      if($_POST['album']=='landscapes') echo 'selected'; 
      ?>" onmouseover="this.className='imageOn'" onmouseout="this.className='imageOff <?php 
      if($_POST['album']=='landscapes') echo 'selected'; 
      ?>'" type="image" src="./landscapes/landscapes.jpg" title="Landscapes" alt="Landscapes" class="album"/> 
      <input type="hidden" name="album" value="landscapes" /> 
      <input type="hidden" name="restart" value="1" /> 
      <br /> 
      <input type="submit" class="submit <?php 
      if($_POST['album']=='landscapes') echo 'subsel'; 
      ?>" value="Landscapes" /> 
     </form> 
     </div> 
    </div> 
    <div id="panel_poze"></div> 
</div> 

<?php } 
session_destroy(); 
?> 

</body> 
</html> 

感谢您的时间投资在读这篇文章,任何想法,将不胜感激。

回答

0

我会建议更换你看一看一个CSS网格系统,如Twitter Bootstrap960.gs

要回答你的问题有关表:使用表CSS之前都OK。 CSS将帮助您以更好更灵活的方式组织您的内容。我建议你看看CSS TricksW3 CSS tutorials,以确保你了解<div>是如何工作的以及如何漂浮它们。此外,HTML5还具有容器的语义含义,可以让您更好地表示网站的结构。如果您想要了解更多信息,或者需要获取最初的模板,请参阅HTML5 Boilerplate

+0

谢谢...我会尽力做到这一点,时刻......但尽管如此,我的第一个问题是没有回答:)非常感谢反正...我要开始现在就读 – 2013-03-18 13:26:23

+1

@AngellumManaflow,欢迎您的光临!你的问题非常具体,并且以某种方式对未来的引用没有帮助,所以我更愿意引导你学习一些比投票下降和标志(在StackOverflow中推荐)好的东西。但是,无论如何,在这里调试这些特定的代码会很昂贵。所以玩得开心! :) – 2013-03-18 13:33:30

+0

嗯...不错960.gs但我没有看到它的相关性在我的情况... CSS技巧,我知道它...可能我会在那里发布的问题...锅板看起来也很有趣,但是我也没有看到与我的问题有关联......并且w3schools ...让我们只是说我开始用它们进行网络编程:) – 2013-03-18 13:52:33

0

解除了安德烈的答案。一个很好的练习方法是简单地制作一个网站,该网站具有非常基本的CSS属性,但具有多种不同格式的div,以便您可以了解这些框的交互方式。

一个这样的项目,当我简单地制作一个带有标题,水平导航,然后是全角,50%至50%双列,25%至50% - 三柱25%,三柱33% - 33% - 33%,25%-25%-25% - 25%四柱,然后页脚。

你应该一直在寻找的东西是响应式布局,所以你可以让你的画廊移动友好。

编辑:

难道这就是你尽可能你想要什么它看起来像意思?

http://jsfiddle.net/4DbUU/1/

我改变了这些规则:

#panel_poze { 
border: 1px solid blue; 
width: 70%; 
min-width: 400px; 
height: 100px; 
float: left; 
} 

#panel_albume { 
border: 1px solid yellow; 
    float: left; 
} 

#container { 
text-align: center; 
width: 100%; 
border: 1px solid white; 
min-width: 700px; 
clear: both; 
overflow: hidden; 
} 

我删除了您的display: inline-block;并添加float: left;到两个孩子。然后我告诉容器把overflow:hidden;clear:both;(左,右浮动)

编辑2:

对于由OP要求清晰度...

在lamens而言,使用float:left时或float:right,以某种方式从页面中选取该元素,并允许它“浮动”您告诉它的任何方向。它会完全忽略附近没有浮动的元素。然后附近的元素开始环绕浮动元素。这有时是可取的,例如向左或向右浮动图像并允许文本环绕图像。但是,在某些情况下,您不希望其他元素环绕浮动的元素。在这些情况下,使用clear命令告诉下一个最近的元素不要环绕浮动元素。看到这两个例子:

http://jsfiddle.net/GL4Pn/2/

在上述例子中,没有明确的是存在的。注意黄色.footer div中的文字在两个浮动元素之间出现。

http://jsfiddle.net/GL4Pn/3/

在这个例子中我添加clear: left;.footer(黄色DIV)。注意它不再包含在div之间的小空间中,但它仍然将这个元素包装在右边。

http://jsfiddle.net/GL4Pn/4/

这里我把它切换到clear: right;通知它不再结束了向左DIV或者div之间出现的空间了。它整齐地嵌套在正确的div下面。这是因为正确的div是最长的div。如果我是增加左div的高度长于右边的div ...

...喜欢这里:http://jsfiddle.net/GL4Pn/5/

注意,现在在div包裹起来的权利,但不是的div的。现在..如果我更改代码以clear: both; ...

http://jsfiddle.net/GL4Pn/6/

注意它回到它是如何与clear:right权当DIV是最长的。如果我更改左格比右边短,守在原地clear:both ...

http://jsfiddle.net/GL4Pn/7/

相同的结果,前...

需要注意的是元素将是重要的如果它们是代码中的下一个元素,则只包装浮动。如果我回到没有明确的第一个示例,但在页脚下添加了一个额外的div,则会看到它不会因为.footer div已占用可用空间而行为不当。

http://jsfiddle.net/GL4Pn/8/

+0

感谢您的回复,这是真的,但目前我确实需要有人向我解释我在CSS中可以做些什么来制作该专辑中包含的图片应显示为整个容器div而不是只是其中的一半......如果你看看jsfiddle链接,你会发现它保持在它的“兄弟”div所包含的第3个div附近......我不明白为什么它不是那么大身高,因为它是兄弟div ...他们都在同一个容器中......不是吗? – 2013-03-18 14:15:06

+0

我想完成我想做的事情,一步一步地做事,我会担心它会让它看起来更适合移动平台等等。 – 2013-03-18 14:17:24

+0

@AngellumManaflow请参阅上面的我的编辑。 – Michael 2013-03-18 14:26:57