5

Web サイトの 1 つにスライドショーを追加しようとしています。ページ全体が HTML テーブルにレイアウトされています (私はこれを非常に嫌い、選択しませんでした)。スライドショーをその特定の列の中央に配置したいと考えています。私のCSSは次のようになります。

#slideshow {
position:relative;
}

#slideshow IMG {
position:absolute;
z-index:8;
opacity:0.0;
}

#slideshow IMG.active {
z-index:10;
opacity:1.0;
}

#slideshow IMG.last-active {
z-index:9;
}

画像を変更するための私の JQuery 関数は次のとおりです。

function slideSwitch() {
var $active = $('#slideshow IMG.active');

if ( $active.length == 0 ) $active = $('#slideshow IMG:last');

// use this to pull the images in the order they appear in the markup
var $next =  $active.next().length ? $active.next()
    : $('#slideshow IMG:first');

$active.addClass('last-active');

$next.css({opacity: 0.0})
    .addClass('active')
    .animate({opacity: 1.0}, 1000, function() {
        $active.removeClass('active last-active');
    });
}

$(function() {
    setInterval( "slideSwitch()", 5000 );
});

最後に、テーブル内のスライドショー div を次に示します。

<td bgcolor="red" align="center" valign="top"> 
<div id="slideshow">
    <img src="2009Slideshow\1.jpg" alt="Slideshow Image 1" class="active" />
    <img src="2009Slideshow\2.jpg" alt="Slideshow Image 2" />
    <img src="2009Slideshow\3.jpg" alt="Slideshow Image 3" />
    etc...
    etc...
</div>                    
</td> 

では、スライドショーをその列の中央に配置できないのはなぜですか?

4

6 に答える 6

16

css プロパティ "text-align:center;" を使用すると、インライン要素を簡単に中央に配置できます。「margin-left:auto;margin-right:auto;」を使用して、ブロック要素を中央に配置する必要があります。それらに固定幅を与えることによって。あなたの特定のケースでは、「div」の代わりにスパンを使用するか、div を完全に削除して text-align メソッドを使用することをお勧めします。

アップデート

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">   
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">     
    <head>      
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />   
        <title>Centering</title>
    <style type="text/css">
      table{
       border:1px solid black; 
      }
      span{
        background-color:red; 
        color:white;       
      } 
      td{
        text-align:center;
        width:200px; 
      }
    </style>
  </head>
  <body>
    <div class="item" id="item1">
      <table>
        <tr>
          <td>
            <span>Hi there!</span>  
          </td>
        </tr>        
      </table>
    </div>    
    </body>
</html> 
于 2009-06-25T04:42:29.247 に答える
5
#slideshow {
margin: 0 auto;
}

and also text-align: center

テーブルのために

于 2009-06-25T05:21:04.590 に答える
1

次の解決策は、画像のサイズがわからない場合でも機能します。

<div style=" height:100px; width:100px; display:table-cell; text-align:center; vertical-align:middle; " >
    <img src="images/myPicture.png">
</div>

于 2009-08-11T22:13:10.243 に答える
0

標準

 div#slideshow {
    margin : 0 auto;
    width : 200px;
}

そして(古い?)つまり

td {
    text-align : center;
}

つまり、自動マージンは「好き」ではなく、インライン要素だけでなくブロック要素 (div) も中央に配置します。

また、 td on の表示プロパティの標準値が何であるかもわかりません。つまり、 table-cell を使用せず、 text-align がインライン要素内で機能しないため、別の可能なアプローチは別の div をラップすることです:

<td>
<div id="slideshow_container">
<div id="slideshow">
...
</div>
</div>
</td>

とcss

div#slideshow {
    margin : 0 auto;
    width : 200px;
}
div#slideshow_container {
    text-align : center;
    width : 100%;
    height : 100%;
}
于 2009-06-25T11:04:32.403 に答える