1. ホーム
  2. Web制作
  3. CSS

[CSSチュートリアル】擬似要素で実現する中空三角矢印とXアイコンの例

2022-01-13 11:33:33

フロントエンドのデザインで、「X」型のクローズボタンや「>」などの3方向の中空矢印アイコンをよく見かけます。 cssにはこれを実現する方法がいろいろありますが、試してみて、あまり覚えやすくないなと思ったので、今日はそれについて書きますね。after疑似要素を使って簡単に実現する方法。

1. アイコンを閉じる

htmlセクション

General Compiler and Linker Flags
Search Path and Library Linking Flags
-l[linalg]
=> Links to shared library or shared object - Specifically, it links to linalg.dll on Windows, liblinalg.so (on Unix-like oses like Linux, BSD, AIX, ...) or linalg.dylib on MacOSX.
-L[/path/to/shared-libraries]
=> Add search path to shared libraries, directory containing *.so, *.dll or *.dlyb files such as libLinearAlgebra.so depending on the current operating system.
-I[/path/to/header-files]
Add search path to header files (.h) or (.hpp).
-D[FLAG] or -D[FLAG]=VALUE
Pass preprocessor flag #if FLAG ...
GCC and Clang Most common compiler flags:
std - Specify the C++ version or ISO standard version.
-std=c++11 (ISO C++11)
-std=c++14 (ISO C++14)
-std=c++1z (ISO C++17)
-std=c++20 (C++20 experimental)
-std=gnu++ (ISO C++ with GNU extensions)
Verbosity - [W stands for warning]
-Wall
Turns on lots of compiler warning flags, specifically (-Waddress, -Wcomment, -Wformat, -Wbool-compare, -Wuninitialized, -Wunknown-pragmas, -Wunused-value, -Wunused-value, -Wunused-value. Wunused-value, -Wunused-value ...)
-Werror
Turn any warning into a compilation error.
-Wextra or just -W (see more)
Enables extra flags not enabled by -Wall, such as -Wsign-compare (C only), -Wtype-limits, -Wuninitialized ...
-pendantic or -Wpendantic
Issue all warnings required by ISO C and ISO C++ standard, it issues warning whenever there are compiler extensions non compliant to ISO C or C++ standard.
-Wconversion
-Wcast-align
-Wunnused
-Wshadow
-Wold-style-cast
-Wpointer-arith -Wcast-qual -Wmissing-prototypes -Wno-missing-braces
Output file: -o <outputfile>
g++ file.cpp -o file.bin
Common library flags
-lm - Compiles against the shared library libm (basic math library, mostly C only)
-lpthread - Compile against Posix threads shared library
Include Path - Directories containing headers files.
-I/path/to/include1 -I/path/to/include2 ...
Compilation flags -D&D<flag name>
-DCOMPILE_VAR -> Enable flag COMPILE_VAR - It is equivalent to add to the code (#define COMPILE_VAR)
-DDO_SOMETHING=1 - Equivalent to add to the code #define DO_SOMETHING = 1
-DDISABLE_DEPRECATED_FUNCTIONS=0
Optmization - docs
-O0
No optmization, faster compilation time, better for debugging builds.
-O2
-O3
Higher level of optmization. Slower compile-time, better for production builds.
-OFast
Enables higher level of optmization than (-O3). It enables lots of flags as can be seen src (-ffloat-store, -ffsast-math, -ffinite-math-only, -O3 ...)
-finline-functions
-m64
-funroll-loops
-fvectorize
-fprofile-generate
Misc
-fexceptions -fstack-protector-strong -param=ssp-buffer-size=4
Special Options
-g
=> Builds executable with debugging symbols for GDB GNU Debugger or LLDB Clang/LLVM Debugger. builds.
-c
=> Compiler source(s) to object-code (input to linker). This option is better for incremental compilation when using multiple files.
-pie
=> Builds a dynamically linked position independent executable.
-static-pie
=> Builds a staticlaly linked position independent executable.
-shared
=> Build a shared library (.so or .dylib on U*nix-like Oses) or .dll on MS-Windows.
-fno-exceptions
=> Disable C++ exceptions (it may be better for embedded systems or anything where exceptiions may not be acceptable).
-fno-rtti
=> Disable RTTI (Runtime Type Information) - There are many texts around where game and embedded systems developers report that they disable RTTI due to performance concerns.
-fvisibility=hidden
=> Make library symbols hidden by default, in a similar way to w

cssセクション

Findet ein externes Projekt und lädt dessen Einstellungen.
Grundsignatur und Modulmodus
find_package(<Paketname> [version] [EXACT] [QUIET] [MODULE]
              [REQUIRED] [[COMPONENTS] [components...]]
              [OPTIONAL_COMPONENTS Komponenten...]
              [NO_POLICY_SCOPE])

Findet und lädt Einstellungen aus einem externen Projekt.  ``
_FOUND`
wird gesetzt, um anzuzeigen, ob das Paket gefunden wurde.
  Wenn das Paket gefunden wurde, werden paketspezifische Informationen durch Variablen und :ref:`Importierte Ziele`, die durch das Paket selbst dokumentiert werden, bereitgestellt.  
  Die Option ``QUIET`` schaltet Informationsmeldungen ab, einschließlich derer, die anzeigen, dass das Paket nicht gefunden werden kann, wenn es nicht ``REQUIRED`` ist.  
  Die Option ``REQUIRED`` bricht die Verarbeitung mit einer Fehlermeldung ab, wenn das Paket nicht gefunden werden kann

Wenn die Paketkonfigurationsdatei nicht gefunden werden kann, wird CMake eine Fehlermeldung erzeugen, die das Problem beschreibt, es sei denn, das Argument QUIET ist angegeben. Wenn REQUIRED angegeben ist und das Paket nicht gefunden wird, wird ein schwerwiegender Fehler erzeugt und der configure-Schritt bricht ab. Wenn <Paketname>_DIR auf ein Verzeichnis gesetzt wurde, das keine Konfigurationsdatei enthält, ignoriert CMake dies und sucht von vorne.

Paketbetreuer, die CMake-Paketkonfigurationsdateien zur Verfügung stellen, werden ermutigt, diese so zu benennen und zu installieren, dass die unten beschriebene Suchprozedur sie findet, ohne dass zusätzliche Optionen verwendet werden müssen.


原理は、span要素とafter疑似要素で2本の直線を引き、css3のtransformプロパティで別々に回転させることで、クロスオーバー効果を実現しているのだそうです。

2. 中空の三角形矢印

htmlセクション

#ifndef HELLO_H
#define HELLO_H

void PrintHello();

#endif


cssセクション

#include "stdio.h"
#include "../inc/hello.h"

void PrintHello()
{
    printf("hello\n");
}


htmlセクション

CMAKE_MINIMUM_REQUIRED (VERSION 3.5)

set(TARGET_NAME HelloWorld)

#1. include path
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/inc)
#PROJECT_SOURCE_DIR 最顶层cmakelist位置

#2. Quellcode-Pfad
AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src/ SRCS_LIST)
#AUX_SOURCE_DIRECTORY 源文件路径,所有都添加到生成.o

#AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src/temp1 SRCS_LIST_TEMP1)
#set(SRCS_LIST_TEMP2 ${PROJECT_SOURCE_DIR}.../.../temp.c)
#指定单独的源文件

#3. lib path
#LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib)

#4. Ausgabepfad festlegen
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/out)
#PROJECT_BINARY_DIR 执行编译命令的目录,比如新建的build目录即为PROJECT_BINARY_DIR

#5.ADD_EXECUTABLE hinzufügen src .o
#ADD_EXECUTABLE(${TARGET_NAME} ${SRCS_LIST} ${SRCS_LIST_TEMP1} ${SRCS_LIST_TEMP2})
#verwendet, um eine ausführbare Datei zu erzeugen, exe muss die Hauptfunktion enthalten.
#ADD_EXECUTABLE(${TARGET_NAME} ${SRCS_LIST})

#verwendet, um dynamisches so zu erzeugen
add_library(hello_dynamic SHARED ${SRCS_LIST})
add_library(hello_static STATIC ${SRCS_LIST})

#6.TARGET_LINK_LIBRARIES add dependence lib

#TARGET_LINK_LIBRARIES(
#${TARGET_NAME}
#cJSON
#sqlite3
#)


cssセクション

.arrowUp:after {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    border-top: 1px solid #656565;
    border-right: 1px solid #656565;
    transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
}

原理は、after擬似要素で上辺と右辺だけを描いた矩形を描くと矢印の形になり、transformプロパティで角度を調整すると、違う向きになる、というものです。以下は、2つの方向の例です。他の2つの方向は角度を変えるだけで変更できます。

これは、中空三角形の矢印とXアイコンの例を達成するために擬似要素の後についての記事の終わりです、より関連した中空三角形の矢印とXアイコンを達成した後の内容は、スクリプトハウスの過去の記事を検索するか、次の関連記事を閲覧を続けてください、あなたは将来的にもっとスクリプトハウスをサポートして願っています!.