Firefox または IE でスパン幅が決定されない場合の解決策

Firefox または IE でスパン幅が決定されない場合の解決策

コードをコピー
コードは次のとおりです。

<html xmlns="http://www.w3.org/1999/xhtml" >
<ヘッド>
<title>テスト範囲</title>
<mce:style type="text/css"><!--
スパン {
背景色:#ffcc00;
幅:150ピクセル;
}
--></mce:style><style type="text/css" mce_bogus="1">スパン {
背景色:#ffcc00;
幅:150ピクセル;
</スタイル>
</head>
<本文>
固定 <span >幅</span> スパン
</本文>
</html>

テストしたところ、Firefox でも IE でも無効であることがわかりました。

CSS2 標準の幅の定義を調べると、CSS の幅属性が必ずしも有効ではないことがわかります。オブジェクトがインライン オブジェクトの場合、幅属性は無視されます。 Firefox と IE はもともと標準に従うためにこれを行いました。

スパンをブロックタイプに変更し、フロートを設定することは完璧な解決策ではありません

span の CSS に display 属性を追加し、span をブロック型要素に設定します。これにより、確かに幅が変更されますが、前後のテキストが別の行に配置されます。このように、span は実際には完全に div になります。

コードをコピー
コードは次のとおりです。

スパン { 背景色:#ffcc00; 表示:ブロック; 幅:150px;}

多くの人は、CSS プロパティ float を追加することを提案しますが、これは確かに特定の条件下では問題を解決できます。たとえば、この例では、span の前にテキストがない場合でも、それは確かに実現可能です。しかし、それが存在する場合、その前後のテキストが接続され、span は 2 行目まで実行されます。

コードをコピー
コードは次のとおりです。

スパン { 背景色:#ffcc00;
ディスプレイ:ブロック; フロート:左; 幅:150px;}

スパン幅を設定するための完璧なソリューション

次のコードの CSS 定義は、スパンの幅を設定する問題を完全に解決します。ブラウザは通常、サポートされていない CSS プロパティを無視するため、display:inline-block 行を最後に記述するのが最適です。こうすることで、Firefox では、将来 Firefox 3 がリリースされた場合でもこの行が機能し、コードがさまざまなバージョンと同時に互換性を持つようになります。

コードをコピー
コードは次のとおりです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>テスト範囲</title>
<mce:style type="text/css"><!--
スパン { 背景色:#ffcc00; 表示:-moz-インラインボックス; 表示:インラインブロック; 幅:150px;}
--></mce:style>
<style type="text/css" mce_bogus="1">スパン { 背景色:#ffcc00; 表示:-moz-inline-box; 表示:インラインブロック; 幅:150px; }
</head>
<本文>
固定幅 span
</本文>
</html>

<<:  docker compose helloworld を使い始めるための詳細なプロセス

>>:  一般的な DIV タスク (パート 2) — DIV のエディターとさまざまな DIY アプリケーションへの変換

推薦する

JavaScriptで継承を実装するいくつかの方法

目次構造継承(callで実装)プロトタイプチェーン継承(プロトタイプチェーンの助けを借りて実装)複合...

要素 el-button ボタンコンポーネントの使用の詳細な説明

1. 背景ボタンは非常によく使われており、Element のボタン機能は非常に包括的です。この記事で...

Tomcat セキュリティ仕様 (Tomcat セキュリティ強化と仕様)

tomcat はオープンソースの Web サーバーです。Tomcat ベースの Web は実行効率...

Javascript 構造化代入の詳細

目次1. 配列の分解2. オブジェクトの分解3. 不完全な解体4. 分割代入を使用して変数交換を実装...

Vue3.0 異なる解像度のコンピュータの適応操作

まず依存関係をインストールする必要があります npm i lib-flexible-computer...

ハイパーリンクに関するいくつかの質問

<br />ポテトチップスパーティーのこのエピソードに参加して、何人かの友達に会えてとて...

HTMLフォーム要素の詳しい解説(パート2)

HTML 入力属性値属性value 属性は、入力フィールドの初期値を指定します。 <フォーム...

Linux Tensorflow2.0のインストール問題を解決する

conda アップデート conda pip で tf-nightly-gpu-2.0-previ...

win10環境でDockerをインストールする実装

1. Docker公式サイトにアクセスするまず、Dockerの公式ウェブサイトにアクセスして、最新の...

テキストエリアの残りの単語数を動的に取得する方法

仕事で、これまで一度も書いたことのないケースに遭遇しました。午後の半分をその作業に費やし、ついに書き...

Selenium+testng を使用して Docker で Web 自動化を実現する方法

序文長い間さまざまな資料を読んで、ついに selenium+testng のパラメータ化の問題を解決...

MySQLでカンマ区切り値の列を列に変換する方法

序文場合によっては、第 1 正規形設計パターンに従わないビジネス テーブルに遭遇することがあります。...

xHTML タグと HTML タグの違いは何ですか?

すべてのタグは小文字でなければなりませんXHTML では、すべてのタグは小文字でなければなりません。...

MySQL データ圧縮パフォーマンス比較の詳細

目次1. テスト環境1.1 ハードウェアとソフトウェア1.2 テーブル構造2. テストの目的2.1 ...

MySQL 8.0.12 インストール グラフィック チュートリアル

MySQL8.0.12 インストールチュートリアルをみんなで共有します。 1. インストール1.イン...