border-radius 値の設定に関する質問

border-radius 値の設定に関する質問

問題記録

今日はプログレスバーに似た小さなコンポーネントを完成させるつもりでした。プロトタイプは次のようになります(ここでは長さ 200 ピクセル、高さ 28 ピクセルです)

見てみると、とてもシンプルです。数字の1のスタイルはさておき、全体的な親スタイルは、左に半円、右に円弧があるdivです。
これは CSS border-radius を使用して実行できます。 左側は角が丸く、半径は 50 ピクセルです。右側は角が小さく丸くなっています。以前は、div の半径はすべて 8 ピクセルでした。 border-radius の角の順序(時計回りに左上、右上、右下、左下)に従って、 border-radius: 50px 8px 8px 50px; と設定すれば問題ありません。 私はとても喜んでそのスタイルを書き、ブラウザを開きます。

私はバカだ、それは間違っている、私はこうだと思った

実際、ブラウザは次のようになります

何かおかしい。右側の角度は設定されているのに、設定されていないように見えるのはなぜでしょうか。8px を 10px に変更して再度試してみましたが、設定されていないのとほとんど変わりません。

8px にすると、顕著な曲率が得られるはずです。すべてを 8px に設定して確認してみましょう。

はい、これは 8px が持つべき曲率です。左を 50px に変更するとなぜ変わるのでしょうか? 50px と関係があるのでしょうか?疑問に思いながら、私はBaiduを見てみました。

Baiduによると、border-radius(w3c)の完全な書き方は次の通りです。

境界線の半径: 1-4 長さ|% / 1-4 長さ|%;

通常は border-radius: 50px と書きますが、実際の完全な書き方は次のようになります。

境界線の半径: 50px 50px 50px 50px / 50px 50px 50px 50px 50px;

「/」の前の 4 つの値はフィレットの水平方向の半径を表し、次の 4 つの値はフィレットの垂直方向の半径を表します。

各順序は、(水平半径:左上、右上、右下、左下)/(垂直半径:左上、右上、右下、左下)に対応します。

水平半径と垂直半径とは何ですか?

水平半径と垂直半径の比率に応じて、角度の曲率を調整できます。2 つの半径が同じ場合は、丸い角になります。 これが、私が通常角を丸く設定する理由です。なぜなら、私は完全な

例えば、border-radius:10px 20px 30px 40px/40px 30px 20px 10px

こんな感じです

前回の質問を振り返ってみましょう。

高さ 28px は無視しました。つまり、右側を半円にしたい場合は、水平方向と垂直方向の半径が両方とも 14px であれば問題ないのではないでしょうか。

境界線の半径: 14px 8px 8px 14px / 14px 8px 8px 14px; 

このように、親スタイルは正しいです。

右側に設定した8pxの丸い角は効果がないようです。左側は元々28pxの高さで、そこに50pxの半径が挿入されているため、50pxに比べて比例的に圧縮されているのかもしれません。計算すると(14 * 8 / 50 = 2.24)となり、これは設定に相当します。

境界線の半径: 14px 2.24px 2.24px 14px / 14px 2.24px 2.24px 14px;

今後スタイルを書くときは注意してください。小さな問題が大きな問題になる可能性があります。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  JavaScript の構造化代入の一般的なシナリオと例 5 つ

>>:  VMWare仮想マシンにCentOS7システムをインストールする詳細な手順

推薦する

Windows に MySQL をインストールする方法のグラフィック チュートリアル

概要: この記事では主に、Windows 環境に MySQL をインストールする方法について説明しま...

MySQL よく使われる関数の詳細な概要

目次MySQL 共通関数1. 数値関数文字列関数3. 時間機能4. システム機能5. 集計関数MyS...

Vueのフィルターについて知っておくべきこと

目次序文フィルターとは何かフィルターの使い方グローバルフィルターローカルフィルターフィルターは直列に...

Excel ファイルを MySQL データベースにインポートする方法

この記事では、ExcelファイルをMySQLデータベースにインポートする方法を参考までに紹介します。...

Apache ソースコードのインストールと仮想ホストの設定に関する詳細なチュートリアル

ソースからApacheをインストールする1. Apacheソースコードをアップロードして必要なソフト...

CentOS7 デプロイメント Flask (Apache、mod_wsgi、Python36、venv)

1. Apacheをインストールする # yum インストール -y httpd httpd-de...

Vue 円形パーセンテージ プログレスバー コンポーネントの機能の実装

必要な方はどなたでも参考にしてください。試してみて問題が見つかった場合は、メッセージを残してお知らせ...

Vueはページキャッシュ機能を実装する

この記事の例では、ページキャッシュ機能を実装するためのVueの具体的なコードを参考までに共有していま...

Linux システム Docker への ASP.NET Core アプリケーションのデプロイのプロセス分析

目次1. システム環境2. 運用プロセスと途中で遭遇した問題1. システム環境1. Tencent ...

Vueはシンプルな計算機能を実装します

この記事では、参考までに、簡単な計算機機能を実現するためのVueの具体的なコードを紹介します。具体的...

Linuxサーバーのディスク容量を拡張する方法

目次序文ステップ序文今日、es ログが記録されていないことに気付きました。filebeat、elas...

iframeを透明にするパラメータ

<iframe src="./ads_top_tian.html" all...

Windows プラットフォームでの MySQL のインストールと設定方法と注意事項

2.1、msiインストールパッケージ2.1.1、インストール特に重要なのは、インストール前に、元の ...

CSS3 rgb と rgba (透明色) の使い方の詳しい説明

誰もが色にとても敏感だと思います。私たちの目が見るところにはどこにでも色があります。では、CSS で...

Centos7にTenda U12ワイヤレスネットワークカードドライバーをインストールする際の問題を解決する

解決プロセス:方法1: CentOS7.3 のデフォルトのカーネル バージョンは低く、3.10.0-...