質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Q&A

解決済

3回答

51001閲覧

table td要素の中にinput要素等をピッタリと納める方法

退会済みユーザー

退会済みユーザー

総合スコア0

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

0グッド

0クリップ

投稿2015/02/08 10:44

tableの中のtd要素の中に、input要素と単位である「円」を収めたいと考えています。
スペースがあまりないので、tdの中に一列でinputと「円」を収めたいです。
なお、tableは、

lang

1table-layout:fixed;

として、ページの一定の範囲内にぴったりと納まるように調整しています。

lang

1<td><input type="text">円</td>

input要素だけを納めるのであれば、CSSに

lang

1padding-left:0px ; 2padding-right:0px ;

と記述すればよいと思います。

良い方法が思いつかないので、とりあえず、当該inputについて、

lang

1width:60%;

と設定することで、無理矢理inputのサイズ調整をしています。

inputと単位一文字分がピッタリ納まるようなCSSの指定の仕方をご存知の方、ご教示頂けないでしょうか。
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

lang

1コード 2<table><tr><td><input /></td><td>円</td></tr></table> 3

最初のtdにwidth:100%、input に も同様に、って指定すれば、自動補正されます。
css じゃないけど、これが一番簡単ですね。

投稿2015/02/09 17:18

ipadcaron

総合スコア1693

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

lang

1function ElementStyleOperation(_Element){ 2 ElementStyleOperation.prototype.Element=_Element; 3 ElementStyleOperation.prototype.Get=function (_elm,_Style){ 4 var _Element= !_elm||_elm=="" ? this.Element : _elm; 5 if(!_Element&&!_elm){ 6 console.error("Element is null : Elementが存在しません。"); 7 return ""; 8 } 9 var GetStyle; 10 if(document.defaultView){ 11 GetStyle=document.defaultView.getComputedStyle(_Element, ''); 12 }else{ 13 GetStyle=_Element[currentStyle].getAttribute(_Style); 14 } 15 return GetStyle[_Style]; 16 } 17 ElementStyleOperation.prototype.Set=function (_elm,_Style,_Value){ 18 var _Element= !_elm||_elm=="" ? this.Element : _elm; 19 if(!_Element&&!_elm){ 20 console.error("Element is null : Elementが存在しません。"); 21 return ""; 22 } 23 _Element.style[_Style]=_Value; 24 } 25} 26 27var _element=new ElementStyleOperation(); 28console.log(_element.Get(document.getElementById("header"),"width")); 29 30/* 31要素のスタイル属性に対して値を設定 32_element.Set(document.getElementById("header"),"width","500px"); 33*/

上記コードはとある自作ライブラリの補助コードなのですが%指定されたスタイルなどもpxで取得できます(私が確認する限りでは)。ある要素のスタイルを別要素のスタイルにセットする目的に使用しています(今回の要望に近いかと)。
font-sizeから1emのpx数を取得。上記コードを使用してtdの幅を取得して1em分引いて設定すれば希望通りになりますかね?

投稿2015/02/09 15:21

Cf_cwd

総合スコア730

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/02/13 12:13

お礼が遅くなり、申し訳ありません。 この方法を用いて、tdの幅を取得して1em分引いて設定してみます。
guest

0

現状の質問内容から回答を導きだせる人は少ないと思いますよ。

tableの中のtd要素の中に、input要素と単位である「円」を収めたいと考えています。

この部分についてですが収めることは可能でしょう(こちらでも確認しましたが)
どう収めたいのかが明確でないため回答しにくくなっていると思います。(一定の範囲内という表現もそうですがその値などを明確にしなければ回答する側も質問する側も結果的に苦労します)

もしinput要素の幅を文字の一文字の大きさに合わせたいというような要望(違うと思いますが)であればinput要素のwidth指定を1emで行えばいいでしょう。

もしくは一律で決まったtd要素の幅に合わせて全てのinput要素と単位(文字)を最大幅で合わせたいということでしょうか?
単位部分が必ず一文字ならば%指定かpx指定で合わせてやればいいのではないでしょうか。単位が複数文字になるなど一定でない場合はJavaScriptを使用した方がいいのではないかと思います。(一文字と二文字までしかあり得ないという場合ならclassを使用して分けるというような方法でもいいと思いますが)

投稿2015/02/09 05:07

Cf_cwd

総合スコア730

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/02/09 13:35

ご回答頂き、ありがとうございます。 不明確な質問で、申し訳ありませんm(__)m 全てのinput要素と単位(文字)を、tdの最大幅で合わせたいということです。 ただし、画面によってtdの幅が変わるため、pxでの指定はできません。 よって、単位の文字が「円」であれば単位の幅は1emなので、inputの幅を「100%-1em」のように指定できれば、inputと単位で、tdの幅にピッタリ納まると思いました。 そのような指定の方法がないかと探しております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問