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システムをインストールする詳細な手順

推薦する

JavaScript の手ぶれ補正とスロットリングの詳細な説明

目次デバウンススロットル要約するデバウンス定義: スクロール イベントなど、短時間に連続してトリガー...

Vueモバイル端末は画面上で指をスライドさせる方向を判定する

vueモバイル端末は、画面上で指をスライドさせる方向を判断します。具体的な内容は次のとおりです。これ...

iostat を使用して Linux ハードディスクの IO パフォーマンスを表示する方法

TOP 観察: IO 待機に占められる CPU 時間の割合。30% を超えると、IO の負荷が高くな...

CSS 動的読み込みバー効果のサンプルコード

CSS変数の知識を使って、追加したコードとコメントを直接投稿します <!DOCTYPE htm...

mysql8.0 Windows x64 zip パッケージのインストールと構成のチュートリアル

MySQL 8 Windows版 zipインストール手順(ダウンロードアドレス) 1. ZIPファイ...

Docker で PostgreSQL を実行し、いくつかの接続ツールを推奨する

1 はじめに PostgreSQL は、非常に充実した機能を備えたフリーソフトウェアのオブジェクトリ...

Ubuntu 16.04/18.04 に Pycharm と Ipython をインストールするチュートリアル

Ubuntu 18.04の場合1. sudo apt install python 。コマンドライン...

MySQL で遅いクエリ SQL を見つけて最適化する詳細な例

目次1. 遅いクエリSQLを見つけて最適化する方法a. スローログに基づいてスロークエリSQLを見つ...

DockerでRedashの中国語版をデプロイしてインストールする方法の詳細な説明

1. インストール手順 Linux 環境でのローカル インストールと比較すると、Docker のイン...

史上最も便利な Zookeeper サーバーの構築方法 (推奨)

ZooKeeperとはZooKeeper は、分散アプリケーションに効率的で可用性の高い分散調整サ...

GoのDockerデプロイメント用の基本イメージ2つの実装

1. golang:最新のベースイメージ mkdir gotest タッチメイン.go Docker...

Dockerを使用してプライベートGitLabを構築する2つの方法

最初の方法: docker インストール1. オープンソース版のイメージを取得する2. 対応するデー...

mysql 基本操作文コマンドの詳細な説明

1. MySQLに接続するフォーマット: mysql -h ホストアドレス -u ユーザー名 -p ...

JavaScript の静的スコープと動的スコープを例を使って説明します

目次序文静的スコープと動的スコープ静的スコープ実行プロセス動的スコープ実行プロセスエクササイズ練習1...

Vueは複数列レイアウトドラッグを実装します

この記事では、マルチカラムレイアウトドラッグを実装するためのVueの具体的なコードを参考までに共有し...