簡體   English   中英

在容器內輸入對齊

[英]Inputs alignment inside container

我有這樣一個問題:容器中有兩個輸入:文本字段和提交按鈕。 問題是當文本被區域設置更改時(例如從英語到法語),該按鈕會被刻錄並重疊文本字段。 以下是示例:

英語: 英語

法國: 法國

有什么辦法,所以搜索字段的長度會自動適合容器嗎?

這個容器的代碼是這樣的:

  <div id="searchContainer">
    <input type="text" id="searchField" class="search" name="searchQ" />
    <?php echo $this->searchButton; ?>
  </div>

我自己設計多語言形式時遇到了類似的問題,雖然我從未找到最佳解決方案,但我會分享我最終做的事情以防萬一。

不幸的是,樣式動態表單很少容易,有時甚至是不可能的。 但是,您可以根據頁面的語言設置輸入字段的樣式。 首先確保頁面html反映了您正在使用的語言(我使用服務器端代碼生成此語言,在您的情況下,它應該是一個直接的php echo語句):

<body lang="en">

接下來,根據語言選擇文本輸入

#searchField {
    width: 80%; /* default width */
}
body[lang|="en"] #searchField {
    width: 70%; /* make space for english button */
}

根據語言還有多種其他選擇方式,請查看http://www.w3.org/International/questions/qa-css-lang

如果您不介意jQuery的幫助,那么以下代碼可以解決您的問題。

HTML代碼 -

<div id="form" class="loading">
        <form action="">
            <div id="container">
                <input type="text" name="input" id="input" value="">
                <input type="submit" name="submit" value="submit" id="s">
            </div>
        </form>
    </div>

css和js-

    <script>
            jQuery(document).ready(function($){
                var containerWidth = $("#form #container").outerWidth();
                var searchBoxWidth = jQuery("#form #s").outerWidth();               
                var adjustedWidth = containerWidth -  searchBoxWidth - 30   //  this is a value i've chosen to separate the button from the input field and the right edge of the wrapper
                jQuery("#form #input").width(adjustedWidth);
jQuery("#form").removeClass('loading');
            });
        </script>

        <style>
.loading form{visibility:hidden;background:url(img/loader.gif) no-repeat 50% 50%}
/*url should follow your own link to the gif you want to use*/
            #form{width:700px;margin:200px auto;}
            #form #container{border-radius: 30px;height: 60px;background: #ccc;border: 0;padding:0}
            #form #input{height: 40px;margin: 10px 0 0 10px;border-radius: 30px;border: 0;padding:0;}
            #form #s{padding: 13px 28px;border: 0;border-radius: 30px;text-transform: uppercase;}
        </style>

編輯:

  1. 我在主包裝器中添加了一個類“loading”來識別加載階段。 初始我不希望任何訪問者看到包裝器內的內容,以便我設置規則visibility:hidden以便內容將保留在該位置,而不顯示它們我正在使用background屬性顯示加載gif loader類。
  2. 當設置輸入框的寬度時,我將從包裝器中刪除類loading ,以便現在可以看到內容。

如果您不介意使用表格進行布局,您可以這樣做( 小提琴 ):

<style>
.search-table {
    width:100%;
}
.search-table .search{
    box-sizing:border-box;
    width:100%;
}
.search-table .btn-cell {
    width:1px;
    white-space:nowrap;
}
</style>
<div id="searchContainer">
    <table class="search-table">
        <tr>
            <td><input type="text" id="searchField" class="search" name="searchQ" /></td>
            <td class="btn-cell"><button>search</button></td>
        </tr>
    </table>
</div>

將輸入發布到 HTML 內部的 PHP<div id="text_translate"><p> 我對 HTML、PHP 和 javascript 還是很陌生。 所以我正在開發一個簡單的音樂搜索網站。 所以基本上在輸入關鍵字后,我的 web 將顯示可能的結果列表,然后單擊結果會將我重定向到音樂播放器並開始播放音樂。</p><p> 這是我的 HTML 文件: </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-html lang-html prettyprint-override"> &lt;div class="container"&gt; &lt;div class="row"&gt; &lt;h1&gt;Search Results&lt;/h1&gt; &lt;!-- BEGIN SEARCH RESULT --&gt; &lt;div class="col-md-12"&gt; &lt;div class="grid search"&gt; &lt;div class="grid-body"&gt; &lt;div class="row"&gt; &lt;div class="table-responsive"&gt; &lt;table class="table table-hover"&gt; &lt;tbody id="mytable"&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;</pre></div></div><p></p><p> 我將搜索結果插入到帶有 javascript 的表中</p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> &lt;script&gt; window.onload= function () { var results = &lt;?php echo json_encode($result_array); ?&gt;; for (i=1;i&lt;=results.length;i++){ document.getElementById("mytable").innerHTML += '&lt;tr action="get_music.php" method="post"&gt;&lt;td class= "number text-center"&gt;' + i +'&lt;/td&gt; &lt;td&gt;&lt;input type="hidden" name="name" value='+results[i-1][0]+'/&gt;&lt;/td&gt;&lt;/tr&gt;'; } } &lt;/sript&gt;</pre></div></div><p></p><p> 我的問題是,每當我點擊一個結果(或具體的表格行)時,我都不會被重定向到 get_music.php 並且我也無法將我的輸入發布到 get_music.php 文件中。 我知道我的代碼一團糟,但請幫忙! 謝謝!</p><p> 更新 - 添加了一些圖片只是為了更清楚地描述它! <a href="https://i.stack.imgur.com/Cd5z5.png" rel="nofollow noreferrer">照片鏈接</a>所以,我搜索了一個關鍵字並得到了多個結果,我希望從我點擊的結果中傳遞 3 個值(名稱、專輯、藝術家)到 get_music.php</p><p> 更新 - 它有效! 感謝 Agustin Mita 的幫助! 所以這是我的最終代碼</p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> &lt;script&gt; window.onload= function() { getDataPHP(); } function getDataPHP(){ var results = &lt;?php echo json_encode($result_array); ?&gt;; renderView(results); } function renderView(results){ var data = ""; for (i=0;i&lt;results.length;i++){ data += '&lt;tr&gt;'; data += '&lt;td class="number text-center"&gt;' + (i+1) + '&lt;/td&gt;'; data += '&lt;td class="image" align="left"&gt;&lt;img src="https://discussions.apple.com/content/attachment/881765040" alt=""&gt;&lt;/td&gt;'; data += '&lt;td class="product"&gt;&lt;strong&gt;'+results[i][0]+'&lt;/strong&gt;&lt;br&gt;'+results[i][1]+'&lt;br&gt;'+results[i][2]+'&lt;/td&gt;'; data += '&lt;td&gt;&lt;form method="post" action="get_music.php"&gt;'; data += '&lt;input type="hidden" value="'+results[i][0]+'" name="name" /&gt;'; data += '&lt;input type="hidden" value="'+results[i][1]+'" name="album" /&gt;'; data += '&lt;input type="hidden" value="'+results[i][2]+'" name="author" /&gt;'; data += '&lt;br&gt;&lt;input style="float: right;" type="submit" value="Play music" /&gt;'; data += '&lt;/form&gt;&lt;/td&gt;'; data += '&lt;/tr&gt;'; } document.getElementById('mytable').innerHTML += data; } &lt;/script&gt;</pre></div></div><p></p></div><table></table>

[英]Posting Inputs to PHP inside HTML <table>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 Bootstrap - 容器流體的對齊問題 PHP表對齊在foreach循環中不正確 div在IE中的列表對齊問題 表格內的TCPDF圖像底部對齊 html 段內文本的條件 alignment 如何遍歷數組中的附加輸入 另一個輸入相同的表單中的表單 WordPress問題與ContactForm7上的div內的輸入有關 將輸入發布到 HTML 內部的 PHP<div id="text_translate"><p> 我對 HTML、PHP 和 javascript 還是很陌生。 所以我正在開發一個簡單的音樂搜索網站。 所以基本上在輸入關鍵字后,我的 web 將顯示可能的結果列表,然后單擊結果會將我重定向到音樂播放器並開始播放音樂。</p><p> 這是我的 HTML 文件: </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-html lang-html prettyprint-override"> &lt;div class="container"&gt; &lt;div class="row"&gt; &lt;h1&gt;Search Results&lt;/h1&gt; &lt;!-- BEGIN SEARCH RESULT --&gt; &lt;div class="col-md-12"&gt; &lt;div class="grid search"&gt; &lt;div class="grid-body"&gt; &lt;div class="row"&gt; &lt;div class="table-responsive"&gt; &lt;table class="table table-hover"&gt; &lt;tbody id="mytable"&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;</pre></div></div><p></p><p> 我將搜索結果插入到帶有 javascript 的表中</p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> &lt;script&gt; window.onload= function () { var results = &lt;?php echo json_encode($result_array); ?&gt;; for (i=1;i&lt;=results.length;i++){ document.getElementById("mytable").innerHTML += '&lt;tr action="get_music.php" method="post"&gt;&lt;td class= "number text-center"&gt;' + i +'&lt;/td&gt; &lt;td&gt;&lt;input type="hidden" name="name" value='+results[i-1][0]+'/&gt;&lt;/td&gt;&lt;/tr&gt;'; } } &lt;/sript&gt;</pre></div></div><p></p><p> 我的問題是,每當我點擊一個結果(或具體的表格行)時,我都不會被重定向到 get_music.php 並且我也無法將我的輸入發布到 get_music.php 文件中。 我知道我的代碼一團糟,但請幫忙! 謝謝!</p><p> 更新 - 添加了一些圖片只是為了更清楚地描述它! <a href="https://i.stack.imgur.com/Cd5z5.png" rel="nofollow noreferrer">照片鏈接</a>所以,我搜索了一個關鍵字並得到了多個結果,我希望從我點擊的結果中傳遞 3 個值(名稱、專輯、藝術家)到 get_music.php</p><p> 更新 - 它有效! 感謝 Agustin Mita 的幫助! 所以這是我的最終代碼</p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> &lt;script&gt; window.onload= function() { getDataPHP(); } function getDataPHP(){ var results = &lt;?php echo json_encode($result_array); ?&gt;; renderView(results); } function renderView(results){ var data = ""; for (i=0;i&lt;results.length;i++){ data += '&lt;tr&gt;'; data += '&lt;td class="number text-center"&gt;' + (i+1) + '&lt;/td&gt;'; data += '&lt;td class="image" align="left"&gt;&lt;img src="https://discussions.apple.com/content/attachment/881765040" alt=""&gt;&lt;/td&gt;'; data += '&lt;td class="product"&gt;&lt;strong&gt;'+results[i][0]+'&lt;/strong&gt;&lt;br&gt;'+results[i][1]+'&lt;br&gt;'+results[i][2]+'&lt;/td&gt;'; data += '&lt;td&gt;&lt;form method="post" action="get_music.php"&gt;'; data += '&lt;input type="hidden" value="'+results[i][0]+'" name="name" /&gt;'; data += '&lt;input type="hidden" value="'+results[i][1]+'" name="album" /&gt;'; data += '&lt;input type="hidden" value="'+results[i][2]+'" name="author" /&gt;'; data += '&lt;br&gt;&lt;input style="float: right;" type="submit" value="Play music" /&gt;'; data += '&lt;/form&gt;&lt;/td&gt;'; data += '&lt;/tr&gt;'; } document.getElementById('mytable').innerHTML += data; } &lt;/script&gt;</pre></div></div><p></p></div><table></table> 將iframe內部,表單內部的一些輸入發布為整個表單
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM