https://codepen.io/Kickflip/pen/mdeorPo
Kann Bilder nicht einbinden, weil ich kein "Pro" bin bei codepen.
Was generell noch fehlt:
- Das ganze Bild soll ein Hyperlink sind
- Das Bild soll sich ähnlich wie der Text skalieren
https://codepen.io/Kickflip/pen/mdeorPo
Kann Bilder nicht einbinden, weil ich kein "Pro" bin bei codepen.
Was generell noch fehlt:
- Das ganze Bild soll ein Hyperlink sind
- Das Bild soll sich ähnlich wie der Text skalieren
Um nochmal alles aufzulisten:
- Bild im Grid anzeigen lassen, im Modus cover meinetwegen, sodass stets die gesamte Zelle im CSS-Grid ausgefüllt ist
- Text auf dem Bild anzeigen lassen
- das gesamte Bild soll einen Link enthalten, sprich auf eine andere Seite führen
- wenn man über das Bild hovert, dann soll sich das Bild größer skalieren, irgendwelche Bilder angewendet werden, aber es soll niemals die vorgegeben CSS-Gridgrenzen überschreiten
Bekomme das echt nicht hin.
Hmmm... ich habe das jetzt nochmal versucht und es kommt echt nichts gewolltes bei raus. Das ist echt schade, weil ich bei google auch nichts konkretes finde
Ja, und das ist genau das Problem. Das kann doch eigentlich nicht so schwer sein?
Habe genau diesen Effekt auf anderen Seiten schon gesehen
Um es auf deinen Code abzustimmen wäre das Grid-Layout wie folgt:
#grid-container {
display: grid;
grid-template-columns: repeat(9, 1fr);
grid-template-rows: repeat(21, 4vw);
grid-gap: 0px;
}
Aber die exakten Anzahlen an rows und columns ist ja wumpe. Wenn ich sage, dass das Bild wie in diesem Fall von
#grid-item-team {
grid-column-start: 1;
grid-column-end: 4;
grid-row-start: 11;
grid-row-end: 19;
}
laufen soll, dann soll es auch nur dadrin angezeigt werden
Danke für deine Bemühung, aber das funktioniert immer noch nicht. Also es ändert sich gar nichts zum code davor. Die Funktionen stimmen alle, aber der Text wird oberhalb des Bildes angezeigt und Das Bild hält sich nicht an die row und column Vorgabe für das Grid.
Anscheinend möchtest Du, dass der Text das Bild überdeckt?
Ja, allein aus dem Grund, weil ich es nicht hinbekomme, möchte ich wissen, wie es dennoch funktioniert.
Es funktioniert nicht, also die figcaption wird über dem Bild angezeigt und das Bild füllt mehr als den vorgegebenen Bereich aus. Ich möchte die figcaption ja vor dem Bild haben bzw auf dem Bild
Das ist auf jeden Fall schonmal eine gute Hilfe. Danke.
An welche Stelle würde denn der Link dann kommen, wenn ich das gesamte Bild als Link haben möchte?
Leider finde ich die IDs aus deinem CSS in deinem HTML nicht wieder.
Oh, sorry. Habe das schnell geändert. Danke.
Hi,
ich komme einfach nicht auf einen grünen Zweig.
Was ich möchte:
In einem CSS-Grid mehrere Bilder anordnen und wenn man mit dem Zeiger rüberfährt, soll das Bild so einen Zoom-Effekt zeigen. Dabei soll es aber stets nicht über die Maße des vorgegeben Grids hinausragen, was momentan bei mir der fall ist. Das Bild wird vergrößert, aber man sieht, wie es aus dem für ihn vorgesehenen Bereich herausspringt und der overflow: hidden nicht funktioniert.
Außerdem soll vor dem Bild ein Text angezeigt werden und wenn ich auf das Bild klicke, soll eine andere Seite geöffnet werden.
HTML:
<div id="dasTeam"> Fertige Projekte</div>
<img id="dasTeamBild" src="images/team.jpg" alt="alternativer_text">
CSS:
#dasTeamBild{
grid-column-start: 1;
grid-column-end: 4;
grid-row-start: 11;
grid-row-end: 19;
filter: grayscale(50%);
z-index: 1;
}
#dasTeam:hover + #dasTeamBild{
filter: blur(2px);
overflow: hidden;
transition-duration: 0.2s;
transform: scale(1.1);
z-index: -20;
}
#dasTeam{
grid-column-start: 1;
grid-column-end: 4;
grid-row-start: 11;
grid-row-end: 19;
font-family: 'Raleway', sans-serif;
font-size: 5vw;
color: white;
display: flex;
align-items: center;
justify-content: center;
border: 2px solid black;
z-index: 4;
overflow: hidden;
}
Alles anzeigen
Ist alles ein bisschen hardcode, weil ich noch ausprobiere. Weiß jemand, warum das nicht läuft?
Gruß
Hi,
ich habe bereits gelernt, dass man eine .css und eine .js Datei hat, wo alles drin ist.
Jetzt frage ich mich aber, wie das bei den .html ist.
Man hat ja eine index.html , die quasi die Hauptseite (bsp example.com) präsentiert. Jetzt hat man aber zum Beispiel ein Impressum, also example.com/impressum
Frage:
Muss ich jetzt für jede neue Seite eine neue .html erzeugen? Also es funktioniert ja so, aber gibt es da nicht eine clevere Lösung?
header und footer sollen aber auf der Impressumsseite genauso angezeigt werden wie auf der example.comSeite
andere Frage:
Gibt es eine Möglichkeit in HTML eine Funktion zu erzeugen, die anhand von Inputparametern sich anders verhält? Input wäre z.b. sowas wie Schriftgröße oder Name eines Links etc.?
Gruß
Danke. Bin unfähig google zu benutzen
Hi,
nutze netbeans und versuche mir meinen Code lokal in Safari anzuzeigen.
Irgendwie hat er Probleme mit dem grid-template. Es erscheint im CSS ein gelbes Schild mit: Unknown property
Wie kann ich das fixen?
Thanks a lot
Ja, das weiß ich. Mache ich irgendwann mal
Dann ist die transition nachdem ich auf den burger klicke aber auch weg
Das habe ich schon versucht.
Hi,
wenn ich mit @media unter 768px fahre, dann verschwindet meine NavBar und sie kann per Burger-Toole von der Seite reingeholt werden.
Mein Problem ist, dass man sieht, wenn ich von 769px -> 768px gehe, wie die NavBar verschwindet. Das möchte ich nicht, ich möchte einfach, dass das umspringt und wenn ich auf den Burger klicke die Bar langsam ins Bild transformiert.
Habe einfach in CSS:
transform: translateX(100%);
transition: transform 0.2s ease-in;
.nav-active{
transform: translateX(0%);
}
und in JS
const nav = document.querySelector('.NAVLINKS');
burger.addEventListener('click',()=>{
//toggle nav
nav.classList.toggle('nav-active');
}
das
@keyframes navLinkFade{
from{
opacity: 0;
transform: translateX(50px);
}
to{
opacity: 1;
transform: translateX(0px);
}
}
macht Probleme, wenn ich das auskommentiere funktioniert es
Javascript rufe ich in der HTML auf mit
sieht wie folgt aus:
const navSlide = () => {
const burger = document.querySelector('.burger');
const nav = document.querySelector('.NAVLINKS');
const navLinks = document.querySelectorAll('.NAVLINKS li');
burger.addEventListener('click',()=>{
//toggle nav
nav.classList.toggle('nav-active');
//animate links
navLinks.forEach((link, index) => {
if (link.style.animation){
link.style.animation = '';
} else {
link.style.animation = `navLinkFade 0.5s ease forwards ${index/5 + 0.2}s`;
}
});
//Burger Animation
burger.classList.toggle('toggle');
});
};
navSlide();
Alles anzeigen
Hi,
das ist die html zu der nav:
<nav>
<div class="LOGO">
<a href="link"><h4>bla</h4> </a>
</div>
<ul class="NAVLINKS">
<li>
<a href="link"> portfolio</a>
</li>
<li>
<a href="#"> contact</a>
</li>
<li>
<a href="#"> thisisme</a>
</li>
<li>
<a href="#"> instagram</a>
</li>
<li>
<a href="#"></a>
</li>
</ul>
<div class="burger">
<div class="line1"> </div>
<div class="line2"> </div>
<div class="line3"> </div>
</div>
</nav>
Alles anzeigen
Hi,
ich habe folgendes Problem:
Ich würde gerne eine Navigationsbar einpflegen, die sich je nach Größe des Fensters anders verhält. Etwas besonderes für die kleinste Größe bis 768px, was für das Smartphone zutrifft, danach dann etwas mit 959px, weil sich sonst die einzelnen Punkte oben in der Leiste überschneiden und danach dann etwas für eine Desktopansicht.
Das Problem ist, das die Navigationsleiste das ganze so semi macht. Also wenn ich mein Fenster klein habe (bsp. 750px), und in diesem Zustand die Seite neu lade dann zeigt sie den Smartphonemodus an. Alles super. Wenn ich es dann größer ziehe, dann geht sie auch schön ab 769px in den Mittelmodus und ab 960px in den Desktopmodus. Aber da bleibt das Ganze nun. Wenn ich jetzt das Fenster wieder kleiner ziehe, dann springt sie nicht wieder zurück in die anderen Modi. Wenn ich aber die Seite dann kleingezogen habe, und neu lade, dann zeigt sie wieder den Smartphonemodus an. Warum ist das so? Was mache ich falsch? Benutze Safari.
@media screen and (max-width: 959px){
.NAVLINKS{
display: flex;
justify-content: space-around;
width: 60%;
}
}
@media screen and (max-width: 768px){
body{
overflow-x: hidden;
}
.NAVLINKS{
position: fixed;
right: 0px;
height: 92vh;
top: 8vh;
background-color: black;
display: flex;
flex-direction: column;
/*justify-content: center;*/
align-items: center;
width: 50%;
transform: translateX(100%);
transition: transform 0.2s ease-in;
}
.NAVLINKS li{
opacity: 0;
}
.burger{
display: block;
}
.nav-active{
transform: translate(0%);
}
@keyframes navLinkFade{
from{
opacity: 0;
transform: translateX(50px);
}
to{
opacity: 1;
transform: translateX(0px);
}
}
.toggle .line1{
transform: rotate(-45deg) translate(-5px, 5px);
}
.toggle .line2{
opacity: 0;
}
.toggle .line3{
transform: rotate(45deg) translate(-5px, -5px);
}
}
Alles anzeigen
HTML-Seminar.de - mit Videos zum schnellen Lernen, wie man eine Website selbst erstellt.