2012-12-19 19 views
13

Văn bản bên trong td yếu tố cần phải được căn giữa ngoại trừ SummaryExperience. Điều này chỉ xuất hiện để hoạt động trong Firefox/chrome. Trong IE8, tất cả văn bản td được hiển thị dưới dạng canh lề trái. Không có vấn đề gì tôi thử nó không tập trung vào nó. Bất kỳ lý do cụ thể tại sao điều này sẽ xảy ra?Không thể căn giữa văn bản trong IE nhưng hoạt động trong firefox

CSS

#viewAll { 
    font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; 
    width: 100%; 
    border-collapse: collapse; 
    margin-left: 10px; 
    table-layout: fixed; 
} 

#viewAll td, #viewAll th { 
    font-size: 1.1em; 
    border: 1px solid #98bf21; 
    word-wrap: break-word; 
    text-align: center; 
    overflow: hidden; 
} 

#viewAll tbody td { 
    padding: 2px; 
} 


#viewAll th { 
    font-size: 1.1em; 
    padding-top: 5px; 
    padding-bottom: 4px; 
    background-color: #A7C942; 
    color: #ffffff; 
} 

bảng

<?php 
echo '<table id="viewAll" class="tablesorter">'; 

      echo '<thead>'; 
      echo '<tr align="center">'; 
      echo '<th style="width:70px;">Product</th>'; 
      echo '<th style="width:105px;">Prob</th>'; 
      echo '<th style="width:105px;">I</th>'; 
      echo '<th style="width:60px;">Status</th>'; 
      echo '<th style="width:120px;">Experience</th>'; 
      echo '<th style="width:200px;">Technical Summary</th>'; 
      echo '<th style="width:80px;">Record Created</th>'; 
      echo '<th style="width:80px;">Record Updated</th>'; 
      echo '<th style="width:50px;">Open</th>'; 

      echo '</tr>'; 
      echo '</thead>'; 
      echo '<tbody>'; 

      while ($data=mysqli_fetch_array($result)){ 

      #limiting the summary text displayed in the table 
      $limited_summary = (strlen($data['summary']) > 300) ? substr(($data['summary']),0,300) . '...' : $data['summary']; 
      $limited_exp = (strlen($data['exp']) > 300) ? substr(($data['exp']),0,300) . '...' : $data['exp']; 

      echo '<tr align="center"> 

      <td style="width:70px; text-align:center;">'.$data['product'].'</td>'; 

      //if value is '-' do not display as link 
      if ($data['prob'] != '-'){ 

      echo '<td style="width:105px;">'.$data['prob'].'</a></td>'; 
      } 
      else{ 
        echo '<td style="width:105px; ">'.$data['prob'].'</td>'; 
      } 

      if ($data['i'] != '-'){ 

       echo '<td style="width:105px; ">'.$data['i'].'</a></td>'; 
      } 
      else{ 
        echo '<td style="width:105px; ">'.$data['i'].'</td>'; 
      } 

      echo'<td style="width:40px; " >'.$data['status'].'</td> 
      <td style="width:120px; text-align:left;">'.$limited_cust_exp.'</td> 
      <td style="width:200px; text-align:left;">'.$limited_summary.'</td> 
      <td style="width:80px; ">'.$data['created'].'</td> 
      <td style="width:80px; ">'.$data['updated'].'</td>'; 


      if (isset($_SESSION['username'])){ 
      echo '<td style="width:50px; "> <form action="displayRecord.php" method="get">'.' 
       <input type="hidden" name="id" value="'. $data['id'].'" style="text-decoration: none" /><input type="submit" value="Open" /></form></td>'; 
      }else{ 

       echo '<td style="width:50px; "> <form action="displayRecord.php" method="get">'.' 
       <input type="hidden" name="id" value="'. $data['id'].'" style="text-decoration: none" /><input type="submit" value="View" /></form></td>'; 

      } 


      echo '</tr>'; 

       }#end of while 

echo '</tbody>'; 
echo '</table>';    

?> 

EDIT 1: Tôi chỉ cố gắng mã chính xác cùng qua xampp và nó tập trung nó trong trình duyệt IE. Bất kỳ ý tưởng tại sao nó sẽ làm việc thông qua XAMPP trên máy địa phương của tôi nhưng không thông qua máy chủ? (Bị khá bối rối bởi điều này bây giờ)

EDIT 2: jsfiddle

+2

Bạn có thể đăng HTML được tạo thực tế thay vì PHP để tạo nó không? Tốt hơn là trên jsfiddle hoặc dịch vụ tương tự để chúng ta có thể xem nó, thay vì đoán về nó? – Amadan

+0

@Amadan: vâng tôi có thể thấy nó sẽ giúp ích như thế nào. Các dữ liệu là một chút nhạy cảm vì vậy tôi sẽ có thêm một số dữ liệu mẫu và có nó trên jsfiddle. Sẽ làm điều đó càng sớm càng tốt. – greenpool

+0

Mã của bạn có vẻ như nó sẽ hoạt động. Bạn có thể đăng một testcase của HTML được tạo ra (không có PHP) đến đây và cung cấp cho chúng tôi liên kết không? http://jsfiddle.net/ –

Trả lời

2

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

Thêm dòng mã này ở phía trên, nó sẽ làm việc.

+0

Không hoạt động. Đã không nghĩ rằng nó sẽ. Chăm sóc để giải thích lý do tại sao bạn nghĩ rằng sẽ làm việc? – greenpool

+1

@greenpool Một 'DOCTYPE' cực kỳ quan trọng đặc biệt đối với IE - nó cho trình duyệt biết cách trình diễn trang của bạn (nghĩa là nó là gì). Bằng cách bình luận của bạn làm cho bạn âm thanh cực kỳ kiêu ngạo và có lẽ sẽ làm giảm đáng kể số lượng người sẵn sàng giúp đỡ bạn. – Marty

+0

@MartyWallace: Không có nghĩa là âm thanh kiêu ngạo. Tôi biết những gì nó làm và tôi có html5 doctype '' khai báo trong tập tin tiêu đề của tôi. Tôi đoán đó là điều tôi nên đề cập. – greenpool

0
<!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"> 

Thêm này và nó sẽ làm việc lẽ

+0

Có thể hoạt động? Bạn có đoán không? –

+0

@Ian Chỉ là cách nói ... –

+0

Ugh, tôi xin lỗi. Tôi đã có một trường hợp xấu của SO harshes trước đó. Một câu trả lời hoàn toàn hợp lý đã được đánh dấu rất nhiều với không có ý kiến ​​là lý do tại sao ... –

-1

Inline CSS ghi đè css nội bộ hay bên ngoài. Bạn đã sử dụng <th style="width:x"> để đặt chiều rộng của các cột. Sử dụng được đặt trước <th width="x">.

Điều này sẽ hiệu quả.

+0

Họ đều giống nhau Điều. –