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 アプリケーションへの変換

推薦する

MySQL データベース操作 (作成、選択、削除)

MySQL データベースの作成MySQL サービスにログインしたら、create コマンドを使用し...

ES6 における Object.assign() の使い方の詳細な説明

目次2. 目的2.1 オブジェクトにプロパティを追加する2.3 オブジェクトの複製2.4 複数のオブ...

React Nativeのカスタムルーティング管理に関する深い理解

目次1. カスタムルーティング2. タブナビゲーション3. データの返却要約する1. カスタムルーテ...

フロントエンドJavaScriptのクラス

目次1. クラス1.1 コンストラクタ() 1.2 ゲッターとセッター1.3 これ1.4 静的プロパ...

サーバーから返される14の一般的なHTTPステータスコードの詳細な説明

HTTP ステータス コードステータス コードは 3 桁の数字と理由フレーズ (最も一般的なもの: ...

Windows の MySQL net start mysql MySQL サービスの起動エラーが発生する システムエラーの解決

目次1- エラーの詳細2-シングルソリューション2.1-ディレクトリ C:\Windows\Syst...

MySQL 5.7.18 無料インストールバージョンの設定チュートリアル

MySQL 5.7.18 無料インストール版のインストールチュートリアルMySQL は現在、世界で最...

MySQLの左結合を内部結合に素早く変換するプロセス

日々の最適化プロセス中に、奇妙なことに気付きました。同じ SQL にまったく異なる 2 つの実行プラ...

モバイルデバイス Web 開発における HTML ヘッドの書き方

コードをコピーコードは次のとおりです。 <ヘッド> <meta http-equi...

JavaScriptにおけるPromiseの使い方と注意点について(推奨)

1. 約束の説明Promise は、非同期操作の最終状態 (失敗または正常完了) とその結果の値を...

Vue の計算プロパティの詳細な説明

目次補間式方法計算された要約する今日は、Vue の計算プロパティについてお話ししましょう。計算プロパ...

Vue はシェイク機能を実装します (ios13.3 以降と互換性があります)

最近、shake.jsを使用して、shakeに似た機能を作成しました。ただし、shake機能はios...

Nginx のアンチホットリンクを設定する方法

実験環境• 最小限のインストール済みの CentOS 7.3 仮想マシン• 構成: 1 コア/512...

ドラッグ効果を実現するための純粋なCSSコード

目次1. ドラッグ効果の例2. CSS実装の原則3. CSS実装の詳細4. CSSレイアウト1. 固...

React は antd のアップロード コンポーネントを使用してファイル フォーム送信機能を実装します (完全なコード)

私はプロジェクトを実行するために react を使い始めたばかりで、非常に未熟で完全な初心者です。私...