D2MatE Top
this page
CSSプログラム例
このページでは、CSS (Cascading Style Sheets) のプログラム例を掲載しています。
本サイトで使っているページでは、CSSをJavascriptで挿入する形をとっており、順次
tkCSS_le.js にマージしています。
CSSライブラリ: tkCSS_le.js
- Tree表示を展開する
tkCSS.tree();
ul { list-style-type: none; }
li::before { content: "▶"; cursor: pointer; margin-right: 5px; }
li.collapsed::before { content: "▼"; }
li.collapsed > ul { display: none; }
- <a href>タグをボタンのように見せてドロップダウンメニューにする
tkCSS.buttonLikeAnchor(anchorSelector = ".button-like", options = { fontSize: "15px"
});
${anchorSelector} {
display: inline-block;
padding: 10px 20px;
font-size: #{fontSize};
color: #000000;
background-color: ${bgColor};
// color: #fff;
// background-color: #007bff;
text-align: center;
text-decoration: none;
border-radius: 5px;
transition: background-color 0.3s;
border: 2px solid #000000;
}
${anchorSelector}:hover {
background-color: #aaaadd;
// background-color: #0056b3;
border: 2px solid #000000;
}
- <input type="button">を使ってドロップダウンメニューにする
tkCSS.dropdownButton(dropdownDivSelector = ".dropdown", buttonSelector = ".hoverButton",
dropdownSelector = ".dropdown-content", options = { fontSize: "15px" });
${buttonSelector} {
font-size: ${fontSize};
padding: 0px 5px;
}
${dropdownSelector} {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 100px;
box-shadow: 0px 8px 10px 0px rgba(0,0,0,0.2);
z-index: 1;
}
${dropdownSelector} a {
color: black;
padding: 0px 10px;
text-decoration: none;
display: block;
}
${dropdownSelector} a:hover {
background-color: #f1f1f1;
}
${dropdownDivSelector}:hover ${dropdownSelector} {
display: block;
}
- 複数の絞り込みをするボタン
tkCSS.filterButtonGroups = function(buttonGroups, containerSelector, options = {
fontSize: "15px" });
${buttonGroups.map(group => `${group.selector} button`).join(', ')} {
font-size: ${fontSize};
padding: 0px 5px;
}
${buttonGroups.map(group => `${group.selector} button.active`).join(', ')} {
background-color: ${activeBGColor};
color: white;
border-color: #007BFF;
}
${containerSelector} * {
// font-size: 15px;
}
- プログラムコード名を整形するhljsに追加書式を設定する
.hljs-comment {
color: #0000FF; /* Blue */
}
.hljs-keyword {
font-weight: bold;
color: #FF4500; /* Orange */
}
.hljs-string {
font-weight: bold;
color: #008000; /* Green */
}
.hljs-variable {
font-weight: bold;
color: #FF0000; /* Red */
}
- モーダルダイアログボックス
tkCSS.modalDialog();
.modal {
display: none;
position: fixed;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.4);
}
.modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
max-width: 300px;
text-align: center;
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
}
.close:hover, .close:focus {
color: black;
text-decoration: none;
cursor: pointer;
}
- copyボタンをもつプログラムコードなどの表示
tkCSS.copyBox(copyboxSelector = ".copy-button-copybox", containerSelector =
".container-copybox", textboxSelector = ".text-box-copybox");
${copyboxSelector} {
position: absolute;
top: 30px;
right: -40px;
padding: 5px 10px;
background-color: #4CAF50;
color: white;
border: none;
cursor: pointer;
font-size: 12px;
}
${copyboxSelector}:hover {
background-color: #45a049;
}
${containerSelector} {
position: relative;
margin: 0;
font-family: Arial, sans-serif;
max-width: 95%;
display: block;
word-wrap: break-word;
overflow-wrap: break-word;
word-break: break-all;
white-space: pre-wrap;
position: relative;
}
${textboxSelector} {
padding: 10px;
background-color: #f1f1f1;
border: 1px solid #ddd;
}
`;
document.head.appendChild(style);
tkCSS.hljs();
};
tkCSS.filterButton = function(buttonsSelector, containerSelector, options = {
fontSize: "15px"
}) {
const {
fontSize = "15px", activeBGColor = "#00A0FF"
} = options;
const style = document.createElement('style');
style.innerHTML = `
${buttonsSelector} button {
font-size: ${fontSize};
padding: 0px 5px;
}
${buttonsSelector} button.active {
background-color: ${activeBGColor};
color: white;
border-color: #007BFF;
}
${containerSelector} * {
// font-size: 15px;
}
`;
document.head.appendChild(style);
};
tkCSS.eventFilterTab = function(tabsSelector, tabSelector, options = {
fontSize: "15px"
}) {
const {
fontSize = "15px", activeBGColor = "#00A0FF"
} = options;
const style = document.createElement('style');
style.innerHTML = `
${tabsSelector} {
// margin-bottom: 5px;
font-size: ${fontSize};
text-align: center;
}
${tabSelector} {
display: inline-block;
padding: 0px 5px;
// margin: 0 5px;
background-color: #f0f0f0;
border: 1px solid #ccc;
border-radius: 5px;
cursor: pointer;
line-height: 1.5;
}
${tabSelector}:hover {
background-color: #e0e0e0;
}
${tabSelector}.active {
background-color: #00A0FF;
color: white;
border-color: #007BFF;
}
- メニューバー、ツールバー
tkCSS.mainWindow(toolbarHeight, tabHeight, buttonSize, menuFontSize,
buttonFontSize);
.menubar {
display: flex;
background-color: white;
padding: 5px;
border-bottom: 2px groove #ccc;
}
.menu-item {
position: relative;
margin-right: 20px;
cursor: pointer;
font-size: 16px
white-space: nowrap; /* 改行を防止 */
}
.menu-item:hover .submenu {
display: block; /* ホバーでサブメニューを表示 */
}
.submenu {
display: none;
position: absolute;
top: 100%;
left: 0;
background-color: white;
border: 1px solid #ccc;
z-index: 1;
}
.submenu-item {
position: relative; /* 必要に応じて相対位置を設定 */
padding: 5px 10px;
cursor: pointer;
}
.submenu-item:hover {
background-color: #f0f0f0;
}
.submenu .submenu {
display: none; /* デフォルトで折りたたむ */
left: 100%; /* サブメニューを親メニューの右側に配置 */
top: 0;
}
.submenu-item:hover > .submenu {
display: block; /* ホバーでさらに深いメニューを表示 */
}
.toolbar {
display: flex;
align-items: center;
height: ${toolbarHeight};
background-color: lightgrey;
border: 5px groove #ccc;
/* Toolbarの周囲の線 */
// border-top: 5px groove #ccc;
// border-bottom: 5px groove #ccc;
padding: 0 10px;
}
.tool-button {
margin: 0 2px;
height: 5px;
font-size: 16px;
background-color: #cca;
color: black;
border: 10px grave white;
cursor: pointer;
white-space: nowrap; /*
文字列の折り返しを禁止してボタンの幅を文字列に合わせる */
}
.tool-button:hover {
background-color: #777;
}
.statusbar {
position: fixed;
bottom: 0;
width: 100%;
height: ${statusbarHeight};
background-color: lightgrey;
border-top: 2px groove #ccc;
display: flex;
align-items: center;
padding: 0 10px;
}
.tabs {
display: flex;
align-items: flex-start; /* 左寄せ */
height: ${tabHeight};
background-color: white; /* タブ領域のボタン以外の背景色を白に変更 */
border-bottom: 2px groove #ccc;
}
.tab-button {
flex: none; /* フレックスボックスの拡張を無効にする */
height: ${buttonHeight};
font-size: ${buttonFontSize};
background-color: white;
color: black;
border-top: 1px solid black; /* 上枠線 */
border-right: 1px solid black; /* 右枠線 */
border-left: 1px solid black; /* 左枠線 */
border-bottom: none; /* 下枠線を削除 */
cursor: pointer;
white-space: nowrap; /* ボタンの幅を文字列の幅に合わせる */
margin-right: 2px; /* タブボタン間にスペースを追加 */
}
.tab-button:hover {
background-color: #777;
}
.tab-button.active {
background-color: blue !important; /* アクティブなタブの背景色を青色に変更 */
color: white;
border-bottom: none; /* アクティブなタブの下枠線も削除 */
}
.tab-content {
display: none;
padding: 20px;
// border-top: 3px solid #ccc; /* タブコンテンツの上部に下線を追加 */
}
.tab-content.active {
display: block;
}