One place for hosting & domains

      Ändern der Opazität eines CSS-Hintergrundbildes


      Mit CSS und CSS3 können Sie viele Dinge tun, doch das Einstellen einer Opazität für einen CSS-Hintergrund gehört nicht dazu. Wenn Sie jedoch kreativ werden, gibt es eine Menge kreativer Möglichkeiten, es aussehen zu lassen, als würden Sie die Opazität des CSS-Hintergrundbildes ändern. Beide folgenden Methoden haben eine hervorragende Browserunterstützung bis hinunter zu Internet Explorer 8.

      Methode 1: Verwenden absoluter Positionierung und eines Bildes

      Diese Methode ist genau so, wie sie klingt. Sie verwenden einfach die absolute Positionierung auf einem normalen img-Tag und lassen es so aussehen, als ob Sie die CSS-Eigenschaft background-image verwendet hätten. Sie müssen nur das Bild in einen Container position: relative; platzieren. Hier sehen Sie, wie das HTML-Markup generell aussieht:

      <div class="demo_wrap">
        <h1>Hello World!</h1>
        <img src="https://www.xpresservers.com/wp-content/uploads/2020/09/How-to-Change-a-CSS-Background-Images-Opacity.png">
      </div>
      

      Und hier, wie Ihr CSS aussehen wird:

      .demo_wrap {
          position: relative;
          overflow: hidden;
          padding: 16px;
          border: 1px dashed green;
      }
      .demo_wrap h1 {
          padding: 100px;
          position: relative;
          z-index: 2;
      }
      .demo_wrap img {
          position: absolute;
          left: 0;
          top: 0;
          width: 100%;
          height: auto;
          opacity: 0.6;
      }
      

      Der Trick dabei ist, das Bild absolut zu positionieren und zu strecken, damit es den gesamten übergeordneten Container ausfüllt. Und alles andere relativ zu positionieren, damit Sie einen z-index setzen können, der es über das Bild zieht.

      Hier ist eine Live-Demo:

      Methode 2: Verwenden von CSS-Pseudo-Elementen

      Diese Methode ist einfach, sobald Sie sie sehen, und ist definitiv meine bevorzugte Methode. Mit CSS-Pseudo-Elementen von entweder :before oder :after erstellen Sie ein div mit einem Hintergrundbild und legen eine Opazität darauf fest. Hier sehen Sie, wie Ihr HTML-Markup etwa aussehen würde:

      <div class="demo_wrap">
        <h1>Hello World!</h1>
      </div>
      

      Und hier, wie das CSS aussieht:

         .demo_wrap {
          position: relative;
          background: #5C97FF;
          overflow: hidden;
      }
      .demo_wrap h1 {
          padding: 50px;
          position: relative;
          z-index: 2;
      }
      /* You could use :after - it doesn't really matter */
      .demo_wrap:before {
          content: ' ';
          display: block;
          position: absolute;
          left: 0;
          top: 0;
          width: 100%;
          height: 100%;
          z-index: 1;
          opacity: 0.6;
          background-image: url('https://www.xpresservers.com/wp-content/uploads/2020/09/How-to-Change-a-CSS-Background-Images-Opacity.png');
          background-repeat: no-repeat;
          background-position: 50% 0;
          background-size: cover;
      }
      

      Auch hier müssen wir den z-index des Inhalts (in diesem Fall das <h1>) über das Hintergrund-Pseudoelement verschieben, und wir müssen die position: absolute; und den z-index: 1 auf dem Pseudoelement :before explizit definieren.

      Die restlichen Attribute des Pseudoelements dienen dazu, es so zu positionieren, dass es 100 % des übergeordneten Elements überschneidet. Außerdem verwenden wir eine clevere neue CSS-Eigenschaft: background-size: cover, die den Hintergrund so dimensioniert, dass er das Element bedeckt, ohne die Proportionen zu verändern. Hier ist eine schöne kleine Demo dieser Methode:



      Source link

      Erstellen eines neuen Benutzers und Erteilen von Berechtigungen in MySQL


      Einführung

      MySQL ist eine Open-Source Datenbankverwaltungssoftware, die Benutzern beim Speichern, Organisieren und späterem Abrufen von Daten hilft. Sie verfügt über eine Vielzahl von Optionen, um bestimmten Benutzern nuancierte Berechtigungen innerhalb der Tabellen und Datenbanken zu erteilen – dieses Tutorial gibt einen kurzen Überblick über einige der vielen Optionen.

      Was die Hervorhebungen bedeuten

      In diesem Tutorial sind alle von dem Benutzer einzugebenden oder anzupassenden Zeilen hervorgehoben! Der Rest sollte größtenteils kopiert und eingefügt werden können.

      Erstellen eines neuen Benutzers

      In Teil 1 des MySQL Tutorials haben wir alle Bearbeitung in MySQL als root user vorgenommen, der vollen Zugriff auf alle Datenbanken hat. In Fällen, in denen möglicherweise mehr Einschränkungen erforderlich sind, gibt es Möglichkeiten, Benutzer mit benutzerdefinierten Berechtigungen zu erstellen.

      Beginnen wir mit dem Erstellen eines neuen Benutzers innerhalb der MySQL-Shell:

      • CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

      Anmerkung: Wenn wir in diesem Tutorial Benutzer innerhalb der MySQL-Shell hinzufügen, geben wir den Host des Benutzers als localhost und nicht die IP-Adresse des Servers an. localhost ist ein Hostname, der „diesen Computer“ bezeichnet und MySQL behandelt diesen speziellen Hostnamen besonders: Wenn sich ein Benutzer mit diesem Host bei MySQL anmeldet, versucht er, über eine Unix-Socket-Datei eine Verbindung mit dem lokalen Server herzustellen. Daher wird localhost typischerweise verwendet, wenn Sie eine Verbindung per SSH zu Ihrem Server herstellen wollen oder wenn Sie den lokalen mysql-Client ausführen, um eine Verbindung zum lokalen MySQL-Server herzustellen.

      Zu diesem Zeitpunkt hat newuser keine Berechtigungen, mit den Datenbanken etwas zu tun. Tatsächlich ist es so, dass, selbst wenn newuser versucht, sich anzumelden (mit dem Passwort, password), er nicht in der Lage ist, die MySQL-Shell zu erreichen.

      Daher besteht der erste Schritt darin, dem Benutzer Zugriff auf die benötigten Informationen zu verschaffen.

      • GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

      Die Sternchen in diesem Befehl beziehen sich auf die Datenbank bzw. Tabelle, auf die sie zugreifen können – dieser spezifische Befehl ermöglicht dem Benutzer, alle Aufgaben in allen Datenbanken und Tabellen zu lesen, zu bearbeiten, auszuführen und durchzuführen.

      Bitte beachten Sie, dass wir in diesem Beispiel newuser vollen Root-Zugriff auf alles in unserer Datenbank gewähren. Dies ist zwar hilfreich für das Erklären einiger MySQL-Konzepte, ist aber für die meisten Anwendungsfälle unpraktisch, und könnte die Sicherheit Ihrer Datenbank stark gefährden.

      Sobald Sie die Berechtigungen, die Sie für Ihre neuen Benutzer einrichten möchten, endgültig festgelegt haben, sollten Sie immer sicherstellen, dass Sie alle Berechtigungen neu laden.

      Ihre Änderungen werden nun wirksam.

      Gewähren verschiedener Benutzerberechtigungen

      Nachstehend finden Sie eine Liste anderer gängiger möglicher Berechtigungen, die Benutzer haben können.

      • ALL PRIVILEGES- wie wir bereits gesehen haben, würde dies einem MySQL-Benutzer vollen Zugriff auf eine bestimmte Datenbank (oder, wenn keine Datenbank ausgewählt ist, den globalen Zugriff auf das gesamte System) erlauben.
      • CREATE- ermöglicht ihnen, neue Tabellen oder Datenbanken zu erstellen
      • DROP- ermöglicht ihnen, Tabellen oder Datenbanken zu löschen
      • DELETE- ermöglicht ihnen das Löschen von Zeilen aus Tabellen
      • INSERT- ermöglicht ihnen das Einfügen von Zeilen in Tabellen
      • SELECT- ermöglicht ihnen die Verwendung des Befehls SELECT zum Lesen von Datenbanken
      • UPDATE- ermöglicht ihnen das Aktualisieren von Tabellenzeilen
      • GRANT OPTION- ermöglicht ihnen, anderen Benutzern Berechtigungen zu erteilen oder zu entziehen

      Um einem bestimmten Benutzer eine Berechtigung zu erteilen, können Sie dieses Framework verwenden:

      • GRANT type_of_permission ON database_name.table_name TO 'username'@'localhost';

      Wenn Sie ihnen Zugriff auf eine Datenbank oder eine Tabelle gewähren möchten, stellen Sie sicher, dass Sie ein Sternchen (*) an die Stelle des Datenbanks- oder Tabellennamens setzen.

      Stellen Sie bei jedem Aktualisieren oder Ändern einer Berechtigung sicher, dass Sie den Befehl „Flush Privileges“ verwenden.

      Wenn Sie eine Berechtigung entziehen müssen, ist die Struktur fast identisch mit dem Erteilen einer Berechtigung:

      • REVOKE type_of_permission ON database_name.table_name FROM 'username'@'localhost';

      Beachten Sie, dass die Syntax beim Entziehen von Berechtigungen verlangt, dass Sie FROM verwenden anstelle von TO, wie wir es bei der Erteilung von Berechtigungen verwendet haben.

      Sie können die aktuellen Berechtigungen eines Benutzers überprüfen, indem Sie Folgendes ausführen:

      • SHOW GRANTS FOR 'username'@'localhost';

      Genauso wie Sie Datenbanken mit DROP löschen können, können Sie DROP verwenden, um einen Benutzer vollständig zu löschen:

      • DROP USER 'username'@'localhost';

      Um Ihren neuen Benutzer zu testen, melden Sie sich ab, indem Sie Folgendes eingeben:

      Und melden Sie sich mit diesem Befehl wieder am Terminal an:

      Zusammenfassung

      Nach dem Abschluss dieses Tutorials sollten Sie ein Grundverständnis dafür haben, wie Sie neue Benutzer hinzufügen und ihnen eine Reihe von Berechtigungen in einer MySQL-Datenbank erteilen. Von hier aus können Sie weiter erkunden und mit verschiedenen Berechtigungseinstellungen für Ihre Datenbank experimentieren Sie möchten möglicherweise mehr über einige MySQL-Konfigurationen auf höherer Ebene erfahren.

      Für weitere Informationen über die Grundlagen von MySQL empfehlen wir Ihnen, sich die folgenden Tutorials anzusehen:



      Source link

      Implementieren eines sanften Bildlaufs in React


      Einführung

      Sanfter Bildlauf bedeutet, dass der Benutzer nicht auf eine Schaltfläche klickt und sofort zu einem anderen Teil der (selben) Seite geführt wird, sondern über eine Bildlaufnavigation dorthin navigiert wird. Es ist eine dieser subtilen Funktionen der Benutzeroberfläche auf einer Seite, die einen ästhetischen Unterschied ausmacht.

      In diesem Artikel verwenden Sie das Paket react-scroll auf npm zur Implementierung des sanften Bildlaufs.

      Voraussetzungen

      Zur Absolvierung dieses Tutorials benötigen Sie Folgendes:

      Dieses Tutorial wurde mit Node v13.14.0, npm v6.14.5, react v16.13.1 und react-scroll v.1.7.16 verifiziert.

      In diesem Tutorial erstellen Sie eine einfache Anwendung. Wenn Sie aber einen schnellen Überblick über die Funktionsweise von react-scroll erhalten möchten, können Sie diese komprimierten Schritte nachschlagen:

      Installieren Sie react-scroll:

      npm i -S react-scroll
      

      Importieren Sie das Paket react-scroll:

      import { Link, animateScroll as scroll } from "react-scroll";
      

      Fügen Sie die Link-Komponente hinzu. Die Komponente <Link />verweist auf einen bestimmten Bereich Ihrer Anwendung:

      <Link to="section1">
      

      Sehen wir uns dies genauer an und erstellen eine kleine React-Anwendung mit sanftem Bildlauf.

      Schritt 1 — Installieren und Ausführen einer React-Anwendung

      Der Einfachheit halber verwendet dieses Tutorial ein React-Startprojekt (unter Verwendung von Create React App 2.0), das eine Navigationsleiste (oder navbar) am oberen Rand sowie fünf verschiedene Inhaltsbereiche aufweist.

      Die Links in der Navigationsleiste sind an dieser Stelle nur Anker-Tags. Sie werden Sie jedoch in Kürze aktualisieren, um einen sanften Bildlauf zu ermöglichen.

      Sie finden das Projekt unter React With Smooth Scrolling. Bitte beachten Sie, dass dieser Link für den Start-Zweig ist. Der Haupt-Zweig enthält alle abgeschlossenen Änderungen.

      GitHub Repo-Screenshot

      Um das Projekt zu klonen, können Sie den folgenden Befehl verwenden:

      git clone https://github.com/do-community/React-With-Smooth-Scrolling.git
      

      Wenn Sie sich das Verzeichnis src/Components ansehen, finden Sie eine Datei Navbar.js, die die <Navbar> mit nav-items enthält, die fünf verschiedene <Section>s entsprechen.

      src/Components/Navbar.js

      import React, { Component } from "react";
      import logo from "../logo.svg";
      
      export default class Navbar extends Component {
        render() {
          return (
            <nav className="nav" id="navbar">
              <div className="nav-content">
                <img
                  src={logo}
                  className="nav-logo"
                  alt="Logo."
                  onClick={this.scrollToTop}
                />
                <ul className="nav-items">
                  <li className="nav-item">Section 1</li>
                  <li className="nav-item">Section 2</li>
                  <li className="nav-item">Section 3</li>
                  <li className="nav-item">Section 4</li>
                  <li className="nav-item">Section 5</li>
                </ul>
              </div>
            </nav>
          );
        }
      }
      

      Wenn Sie dann die Datei App.js im Verzeichnis src öffnen, sehen Sie, wo die <Navbar> zusammen mit den fünf tatsächlichen <Section>s enthalten ist.

      src/Components/App.js

      import React, { Component } from "react";
      import logo from "./logo.svg";
      import "./App.css";
      import Navbar from "./Components/Navbar";
      import Section from "./Components/Section";
      import dummyText from "./DummyText";
      class App extends Component {
        render() {
          return (
            <div className="App">
              <Navbar />
              <Section
                title="Section 1"
                subtitle={dummyText}
                dark={true}
                id="section1"
              />
              <Section
                title="Section 2"
                subtitle={dummyText}
                dark={false}
                id="section2"
              />
              <Section
                title="Section 3"
                subtitle={dummyText}
                dark={true}
                id="section3"
              />
              <Section
                title="Section 4"
                subtitle={dummyText}
                dark={false}
                id="section4"
              />
              <Section
                title="Section 5"
                subtitle={dummyText}
                dark={true}
                id="section5"
              />
            </div>
          );
        }
      }
      
      export default App;
      

      Jede Komponente <Section> nimmt einen title und einen subtitle auf.

      Da in diesem Projekt in den verschiedenen Abschnitten Dummytext verwendet wird, wurde dieser Text zur Reduzierung von sich wiederholendem Code einer Datei DummyText.js hinzugefügt, importiert und an jede Komponente <Section> übergeben.

      Um die Anwendung auszuführen, können Sie die folgenden Befehle verwenden.

      • cd React-With-Smooth-Scrolling
      • npm install
      • npm start

      Dadurch wird die Anwendung im Entwicklungsmodus gestartet und automatisch aktualisiert, wenn Sie eine Ihrer Dateien speichern. Sie können sie im Browser unter localhost:3000 anzeigen.

      Screenshot der Anwendung im Browser

      Jetzt ist es an der Zeit, das Paket react-scroll zu installieren und diese Funktionalität hinzuzufügen. Informationen zu dem Paket finden Sie auf npm.

      Das Paket react-scroll auf npm

      Um das Paket zu installieren, führen Sie den folgenden Befehl aus:

      Öffnen Sie als Nächstes die Sicherungskopie der Datei Navbar.js und fügen Sie einen import für zwei benannte Importe, Link und animateScroll hinzu.

      src/Components/Navbar.js

      import { Link, animateScroll as scroll } from "react-scroll";
      

      Beachten Sie, dass ich animatedScroll zur einfacheren Verwendung zu scroll aliasiert habe.

      Nachdem alle Ihre Importe definiert sind, können Sie nun Ihre nav-items aktualisieren, um die Komponente <Link> zu verwenden. Diese Komponente nimmt mehrere Eigenschaften an. Sie können auf der Dokumentationsseite über alle diese Eigenschaften nachlesen.

      Achten Sie vorerst besonders auf activeClass, to, spy, smooth, offset und duration.

      • activeClass – die Klasse, die bei Erreichen des Elements angewendet wird.
      • to – das Ziel, zu dem geblättert werden soll.
      • spy – um Link auszuwählen, wenn sich scoll an der Position des Ziels befindet.
      • smooth – um den Bildlauf zu animieren.
      • offset – um zusätzliche px zu scrollen (wie Padding).
      • duration – die Zeit der Bildlaufanimation. Dies kann eine Zahl oder eine Funktion sein.

      Die Eigenschaft to ist der wichtigste Teil, da sie der Komponente mitteilt, zu welchem Element gescrollt werden soll. In diesem Fall ist dies jede Ihrer <Section>s.

      Mit der Eigenschaft offset können Sie eine zusätzliche Anzahl von Bildläufen definieren, um zu jeder <Section> zu gelangen.

      Hier ist ein Beispiel für die Eigenschaften, die Sie für jede Komponente <Link> verwenden werden. Der einzige Unterschied zwischen ihnen ist die Eigenschaft to, da sie jeweils auf eine andere <Section> verweist.

      <Link
          activeClass="active"
          to="section1"
          spy={true}
          smooth={true}
          offset={-70}
          duration={500}
      >
      

      Sie müssen jedes der nav-items entsprechend aktualisieren. Wenn Sie diese hinzugefügt haben, sollten Sie in der Lage sein, zu Ihrem Browser zurückzukehren (Ihre Anwendung sollte bereits automatisch neu gestartet worden sein) und einen sanften Bildlauf zu sehen.

      Die Eigenschaft activeClass ermöglicht es Ihnen, eine Klasse zu definieren, die auf die Komponente <Link> angewendet wird, wenn ihr Element to aktiv ist. Ein <Link> wird als aktiv betrachtet, wenn sein Element to in der Nähe des oberen Seitenrandes sichtbar ist. Dies kann durch Klicken auf den <Link> selbst oder durch manuelles herunterscrollen zu <Section> ausgelöst werden.

      Um dies zu beweisen, öffnete ich die Chrome DevTools und inspizierte den fünften <Link>, wie nachfolgend gezeigt. Als ich auf diesen <Link> klickte oder manuell bis um Ende der Seite scrollte, bemerkte ich, dass die aktive Klasse tatsächlich angewendet wird.

      Browseransicht der React-Anwendung

      Um dies auszunutzen, können Sie eine aktive Klasse erstellen und dem Link eine Unterstreichung hinzufügen. Sie können dieses Stück CSS zu der Datei App.css im Verzeichnis src hinzufügen:

      src/App.css

      .nav-item > .active {
          border-bottom: 1px solid #333;
      }
      

      Wenn Sie nun zu Ihrem Browser zurückkehren und um ein wenig herumscrollen, sollten Sie sehen, dass der entsprechende <Link> unterstrichen ist.

      Aktualisierte Browseransicht der React-Anwendung

      Schritt 4 — Hinzufügen zusätzlicher Funktionen

      Für einen letzten Teil des Inhalts bietet dieses Paket auch einige Funktionen, die direkt aufgerufen werden können, wie scrollToTop, scrollToBottom, usw., sowie verschiedene Ereignisse, die Sie handhaben können.

      In Bezug auf diese Funktionen führt das Anwendungslogo in einer Navigationsleiste den Benutzer zu der Startseite oder zum Anfang der aktuellen Seite.

      Als einfaches Beispiel dafür, wie eine dieser bereitgestellten Funktionen aufgerufen wird, habe ich dem nav-logo einen Click-Handler hinzugefügt, den den Benutzer wie folgt zu zum Anfang der Seite scrollt:

      src/Components/Navbar.js

      scrollToTop = () => {
          scroll.scrollToTop();
      };
      

      Zurück im Browser sollten Sie in der Lage sein, auf der Seite nach unten zu scrollen, auf das Logo in der Navigationsleiste zu klicken und wieder an den Anfang der Seite zurückgeleitet zu werden.

      Zusammenfassung

      Der sanfte Bildlauf ist eine dieser Funktionen, die Ihrer Anwendung einen hohen ästhetischen Wert verleihen können. Das Paket react-scroll ermöglicht Ihnen, diese Funktion ohne nennenswerten Overhead zu nutzen.

      In diesem Tutorial haben Sie einer Anwendung einen sanften Bildlauf hinzugefügt und mit verschiedenen Einstellungen experimentiert. Wenn Sie neugierig geworden sind, verbringen Sie etwas Zeit damit, die anderen Funktionen und Ereignisse zu erkunden, die dieses Paket zu bieten hat.



      Source link