Я довольно новичок в веб-разработке, но мне очень весело. Я просто пытаюсь понять, как я должен сделать это эффективно. Я пытаюсь создать адаптивную навигационную панель, используя сетку CSS, хотя до сих пор я не дошел до адаптивного бита. У меня сейчас 2 деления, navbar (мои навигационные ссылки) и настройки (не совсем уверен, что я Я делаю с этим еще, будет включать такие опции, как выбор темы), мне нужно, чтобы эти 2 div были центрированы и иметь столбец слева и справа, который расширяется, когда окно растянуто достаточно далеко.
Если возможно, я бы также хотел немного помочь с оформлением моих навигационных ссылок, я изо всех сил стараюсь избавиться от подчеркивания, хотя я добавил text-ornament: none; . Это также мой первый раз в StackOverflow, поэтому, пожалуйста, сообщите мне, если я делаю что-то здесь не так.
HTML
<head>
<title>EminaReads</title>
<link id="theme" rel="stylesheet" />
</head>
<body onload="CheckTheme()">
<div hidden id="loading-wrapper">
<header>
<nav>
<ul>
<li>
<a class="active" href="#">Homepage</a>
</li>
<li>
<a href="#">Follow</a>
</li>
<li>
<a href="#">Info</a>
</li>
</ul>
</nav>
<div class="settings">
<select id="theme-select">
<option hidden>Select Theme</option>
<option onclick="SwapTheme('./styles/Dark.css')" value="Dark">
Dark
</option>
<option onclick="SwapTheme('./styles/Light.css')" value="Light">
Light
</option>
</select>
</div>
</header>
<main>
<div class="blog">
<h2>Blog update1</h2>
<h2>Blog update2</h2>
</div>
<aside>
<p>Discord Link</p>
<p>Music Player</p>
</aside>
</main>
<footer>
<p>Testing Footer</p>
</footer>
</div>
<p id="js-alert">JAVASCRIPT</p>
</body>
</html>
CSS
html {
scroll-behavior: smooth;
}
body {
margin: 0;
font-family: Arial, Helvetica, sans-serif;
background-color: rgb(119, 119, 119);
}
/* Navigation System */
header {
position: sticky;
top: 0px;
display: grid;
grid-template-columns: repeat(5, 1fr);
grid-template-rows: 1fr;
background-color: rgb(59, 59, 59);
box-shadow: 0 4px 2px -2px rgba(0, 0, 0, 0.25);
}
nav {
margin: 0;
padding: 0;
grid-area: 1 / 2 / 2 / 4;
}
nav li {
display: inline;
}
nav li a.active {
background-color: #4caf50;
}
nav li a:hover:not(.active) {
background-color: #111;
}
/* Settings */
.settings {
grid-area: 1 / 4 / 2 / 6;
}
/* Content */
main {
display: grid;
grid-template-columns: repeat(8, 1fr);
grid-template-rows: repeat(8, 1fr);
}
.blog {
grid-area: 2 / 2 / 8 / 7;
}
aside {
grid-area: 2 / 7 / 8 / 9;
}
footer {
margin-top: 1000px;
background-color: grey;
}
Javascript
function CheckTheme() {
if (localStorage.savedtheme !== null) {
document
.getElementById("theme")
.setAttribute("href", localStorage.savedtheme);
console.log("if");
} else {
document.getElementById("theme").setAttribute("href", "./styles/Dark.css");
console.log("else");
}
console.log("other");
document.getElementById("loading-wrapper").removeAttribute("hidden");
document.getElementById("js-alert").style.display = "none";
}
function SwapTheme(style) {
document.getElementById("theme").setAttribute("href", style);
localStorage.setItem("savedtheme", style);
}
См. Перо
EminaReads от SakuraYagami (
@ SakuraYagami ) на
CodePen .