Heim Web-Frontend js-Tutorial Einführung in Methoden zur Lösung von Browserkompatibilitätsproblemen in Angular

Einführung in Methoden zur Lösung von Browserkompatibilitätsproblemen in Angular

Dec 04, 2020 pm 05:39 PM
angular 兼容性 前端

Wie kann das Browserkompatibilitätsproblem in

angular gelöst werden? Der folgende Artikel stellt es Ihnen vor. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Einführung in Methoden zur Lösung von Browserkompatibilitätsproblemen in Angular

Empfohlene verwandte Tutorials: „angular Tutorial

Problem: Unter dem Randbrowser verschwindet der Rand der festen Spalte

Grund: ng-zorro-antd-Tabellenkomponente Verwendet die festen Tabellenspalten nzLeft und nzRight. Die Implementierung dieser beiden Anweisungs-Tags in CSS3:

position: -webkit-sticky !important;
position: sticky !important;
Nach dem Login kopieren

Google-, Firefox- und -webkit-kernel-Browser unterstützen alle dieses Attribut (css3), IE unterstützt dieses Attribut nicht, daher im IE , es wird automatisch herabgestuft. Die Tabelle hat keine festen Spalten und ist in einer gleitenden Form.
Edge-Browser verwendet den Chromium-Kernel in Versionen nach 1703, der CSS3-Attribute besser unterstützt und auch das Sticky-Attribut unterstützt. Es können feste Tabellenspalten verwendet werden, der Rand verschwindet jedoch.

Lösung:
Die derzeit möglichen Lösungen lauten wie folgt:

  1. Verwenden Sie keine festen Spalten, können Sie auf die Verwendung von nzLeft und nzRight zur Korrektur verzichten der Tisch. Dadurch wird der Anzeigeeffekt in allen Browsern konsistent.

    Bei der Downgrade-Verarbeitung des Edge-Browsers stimmt der Effekt mit dem des IE-Browsers überein, es gibt keine festen Spalten und das Ganze kann horizontal gescrollt werden.

  2. Passen Sie die Implementierung der festen Spalte an, verwenden Sie nicht die Implementierung der festen Spalte der Komponente und implementieren Sie die feste Spalte der Tabelle, indem Sie position: absolute; auf diese Weise verwenden.

Der detaillierte Prozess des zweiten Plans ist wie folgt:

Verwenden Sie p, um die Tabelle zu umbrechen. Wenn die Breite der Tabelle die Breite von p überschreitet, aktivieren Sie den Bildlauf:

.scroll-table {
  width: 100%;
  overflow-x: scroll;
}
Nach dem Login kopieren

Für die Tabelle können wir angeben Breite so, dass sie die Breite des äußeren p überschreitet (so dass Sie den Scrolleffekt sehen können).

.fixed-table {
  width: 1300px; /* 可由th,td动态扩充,也可指定宽度 */
  border-collapse: collapse;
}
Nach dem Login kopieren

Das letzte und wichtigste Problem ist die Implementierung fester Spalten. Nach dem Festlegen der absoluten Positionierung wird die Spalte vom ursprünglichen Dokumentfluss getrennt Die Tabelle hat eine Spalte weniger. Daher muss ein Hintergrundfeld hinzugefügt werden, um sicherzustellen, dass in der Tabelle Platz für diese feste Spalte bleibt.

Der HTML-Code sieht ungefähr wie folgt aus: Der Stil einer festen Spalte kann verwendet werden, oder er kann auf den Stil des Hintergrundbereichs festgelegt werden Spalte.

<p class="scroll-table">
    <table class="fixed-table">
        <thead>
            <tr>
                <th>无效背景板</th>
                <th class="fixed-col">固定列</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>无效背景板</td>
                <td class="fixed-col">固定列</td>
            </tr>
        </tbody>
    </table>
</p>
Nach dem Login kopieren

Referenzcode: Ironape


Problem: Die Bestätigungsschaltfläche für den Kalender (nz-range-picker) des Edge-Browsers muss zweimal angeklickt werden

Ursache: Die Lösung ist noch nicht geklärt

:

  1. Komponentenversion aktualisieren Derzeit tritt dieses Problem in Versionen über ng-zorro-antd 8.5 nicht auf.
  2. Passen Sie die Fußzeile an und fügen Sie eine zusätzliche Fußzeile hinzu, um die OK-Funktion zu ersetzen. Es gibt zwei Möglichkeiten, dies zu erreichen:
    Verdecken Sie nur die entsprechende Schaltfläche, z. B. die Schaltfläche „OK“. Zu diesem Zeitpunkt ist der Schaltflächenstil derselbe Die Standardfußzeile Die Schaltflächen sind inkonsistent. Um die Konsistenz aufrechtzuerhalten, können Sie den Stil anpassen oder den Schaltflächenstil direkt in der Standardfußzeile verwenden. Im folgenden Beispiel verwenden Sie direkt den Stil der Komponentenbibliothek: ant-. Calendar-ok-btn. Um die ursprüngliche Schaltfläche abzudecken, können Sie die absolute Positionierung verwenden, um eine Abdeckung zu erreichen:
<nz-range-picker [nzRenderExtraFooter]="renderExtraFooterTpl">
<ng-template #renderExtraFooterTpl>
  <p>
    <button nz-button nzType="primary" class="ant-calendar-ok-btn abs-right">确 定</button>
  </p>
</ng-template>
Nach dem Login kopieren

Entsprechendes CSS:

.abs-right {
  position: absolute;
  right: 12px;
  top: 7px;
  z-index: 1;
  box-shadow: none;
}
Nach dem Login kopieren

Löschen Sie die Standardfußzeile und passen Sie die Fußzeile vollständig an. Zu diesem Zeitpunkt müssen Sie die ursprüngliche Fußzeile löschen. Sie können die Standardfußzeile wie folgt löschen:

::ng-deep .ant-calendar-footer-btn {
  display: none;
}
Nach dem Login kopieren
Zu diesem Zeitpunkt kann die zusätzliche Fußzeile keine absolute Positionierung verwenden.

Problem: Wenn im IE-Browser zwischen mehreren Registerkarten gewechselt wird, sinkt die Höhe des Containers, in dem sich Echart befindet.

Ursache: Das übergeordnete Element kann die Höhe unter dem IE nicht dynamisch anpassen Browser (d. h. über untergeordnete Elemente) Höhe dynamisch ändern und anpassen)

Lösung: Die Höhe des Containers, in dem sich das Echart-Diagramm befindet, wurde korrigiert


Problem: Im IE-Browser, wann Das Formular wird initialisiert, die Formularvalidierung wird ausgelöst

Ursache: Dies ist ein Problem mit IE10+, das das Eingabeereignis implementiert, aber die Auslösezeit ist falsch. Wenn sich beispielsweise der Platzhalter ändert, wird er ausgelöst, wenn der Text des Platzhalters nicht auf Englisch ist. Edge15+ behebt dieses Problem, der IE behebt dieses Problem jedoch möglicherweise nie.

Lösung:

  1. 使用表单的reset()重置表单,但是重置的操作需要放在setTimeout中,或者通过其他手段将重置的操作作为表单初始化时的最后一个宏任务执行。这种方式经验证,最终的效果是,初始化表单后,表单输入元素的边框闪烁(红色)一下。
  2. 使用自定义的服务商插件(较为推荐),这种方式对原有代码的破坏性小(遵循了OCP原则),该插件是由DerSizeS提供的。只需要在对应的module中增加一个服务商即可
@NgModule({
    providers: [{
        provide: EVENT_MANAGER_PLUGINS, multi: true,
        useClass: UniqueInputEventPlugin, deps: [UNIQUE_INPUT_EVENT_PLUGIN_CONFIG],
    }]    
})
class MyModule {}
Nach dem Login kopieren
需要注意的是,插件需要自己添加到项目文件中(根据angular团队所说,这个插件修复了一个IE10或者IE11的bug,但是提交了太多的代码,这会给增加现有的应用的打包体积,虽然后面关于这个PR讨论了挺久,但是看样子是准备把这个放到FAQ里面,而不会把他并入框架),并在对应的模块中引用。

另注:IE的输入框会因为placeholder为中文而触发表单验证,placeholder改变了也会触发表单验证,所以,有一个讨巧的方法,placeholder里面的内容写成英文形式(推荐),但这显然不符合中文产品的需求,而且这显然没有国际化。所以可以想办法绕过这一条,使用 HTML实体(已验证,可行),Unicode编码(不可以)

更多编程相关知识,请访问:编程入门!!

Das obige ist der detaillierte Inhalt vonEinführung in Methoden zur Lösung von Browserkompatibilitätsproblemen in Angular. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So installieren Sie Angular unter Ubuntu 24.04 So installieren Sie Angular unter Ubuntu 24.04 Mar 23, 2024 pm 12:20 PM

Angular.js ist eine frei zugängliche JavaScript-Plattform zum Erstellen dynamischer Anwendungen. Es ermöglicht Ihnen, verschiedene Aspekte Ihrer Anwendung schnell und klar auszudrücken, indem Sie die Syntax von HTML als Vorlagensprache erweitern. Angular.js bietet eine Reihe von Tools, die Sie beim Schreiben, Aktualisieren und Testen Ihres Codes unterstützen. Darüber hinaus bietet es viele Funktionen wie Routing und Formularverwaltung. In dieser Anleitung wird erläutert, wie Angular auf Ubuntu24 installiert wird. Zuerst müssen Sie Node.js installieren. Node.js ist eine JavaScript-Ausführungsumgebung, die auf der ChromeV8-Engine basiert und es Ihnen ermöglicht, JavaScript-Code auf der Serverseite auszuführen. In Ub sein

PHP und Vue: eine perfekte Kombination von Front-End-Entwicklungstools PHP und Vue: eine perfekte Kombination von Front-End-Entwicklungstools Mar 16, 2024 pm 12:09 PM

PHP und Vue: eine perfekte Kombination von Front-End-Entwicklungstools In der heutigen Zeit der rasanten Entwicklung des Internets ist die Front-End-Entwicklung immer wichtiger geworden. Da Benutzer immer höhere Anforderungen an das Erlebnis von Websites und Anwendungen stellen, müssen Frontend-Entwickler effizientere und flexiblere Tools verwenden, um reaktionsfähige und interaktive Schnittstellen zu erstellen. Als zwei wichtige Technologien im Bereich der Front-End-Entwicklung können PHP und Vue.js in Kombination als perfekte Waffe bezeichnet werden. In diesem Artikel geht es um die Kombination von PHP und Vue sowie um detaillierte Codebeispiele, die den Lesern helfen sollen, diese beiden besser zu verstehen und anzuwenden

Winkelkomponenten und ihre Anzeigeeigenschaften: Nicht-Block-Standardwerte verstehen Winkelkomponenten und ihre Anzeigeeigenschaften: Nicht-Block-Standardwerte verstehen Mar 15, 2024 pm 04:51 PM

Das Standardanzeigeverhalten für Komponenten im Angular-Framework gilt nicht für Elemente auf Blockebene. Diese Designwahl fördert die Kapselung von Komponentenstilen und ermutigt Entwickler, bewusst zu definieren, wie jede Komponente angezeigt wird. Durch explizites Festlegen der CSS-Eigenschaft display kann die Anzeige von Angular-Komponenten vollständig gesteuert werden, um das gewünschte Layout und die gewünschte Reaktionsfähigkeit zu erreichen.

Wie kompatibel ist die Go-Sprache auf Linux-Systemen? Wie kompatibel ist die Go-Sprache auf Linux-Systemen? Mar 22, 2024 am 10:36 AM

Die Go-Sprache ist auf Linux-Systemen sehr gut kompatibel. Sie kann problemlos auf verschiedenen Linux-Distributionen ausgeführt werden und unterstützt Prozessoren unterschiedlicher Architekturen. In diesem Artikel wird die Kompatibilität der Go-Sprache auf Linux-Systemen vorgestellt und ihre leistungsstarke Anwendbarkeit anhand spezifischer Codebeispiele demonstriert. 1. Installieren Sie die Go-Sprachumgebung auf einem Linux-System. Sie müssen lediglich das entsprechende Go-Binärpaket herunterladen und die relevanten Umgebungsvariablen festlegen. Im Folgenden finden Sie die Schritte zur Installation der Go-Sprache auf einem Ubuntu-System:

Kann ich Bluetooth-Kopfhörer im Flugzeugmodus verwenden? Kann ich Bluetooth-Kopfhörer im Flugzeugmodus verwenden? Feb 19, 2024 pm 10:56 PM

Mit der kontinuierlichen Weiterentwicklung moderner Technologie sind drahtlose Bluetooth-Headsets zu einem unverzichtbaren Bestandteil des täglichen Lebens der Menschen geworden. Das Aufkommen kabelloser Kopfhörer macht unsere Hände frei und ermöglicht es uns, Musik, Anrufe und andere Unterhaltungsaktivitäten freier zu genießen. Wenn wir fliegen, werden wir jedoch oft gebeten, unsere Telefone in den Flugmodus zu versetzen. Die Frage ist also: Kann ich Bluetooth-Kopfhörer im Flugzeugmodus verwenden? In diesem Artikel gehen wir dieser Frage nach. Lassen Sie uns zunächst verstehen, was der Flugzeugmodus bewirkt und bedeutet. Der Flugmodus ist ein spezieller Modus für Mobiltelefone

WIN10-Kompatibilität verloren, Schritte zur Wiederherstellung WIN10-Kompatibilität verloren, Schritte zur Wiederherstellung Mar 27, 2024 am 11:36 AM

1. Klicken Sie mit der rechten Maustaste auf das Programm und stellen Sie fest, dass die Registerkarte [Kompatibilität] im sich öffnenden Eigenschaftenfenster nicht zu finden ist. 2. Klicken Sie auf dem Win10-Desktop mit der rechten Maustaste auf die Schaltfläche „Start“ in der unteren linken Ecke des Desktops und wählen Sie im Popup-Menü den Menüpunkt [Ausführen]. 3. Das Win10-Ausführungsfenster wird geöffnet. Geben Sie gpedit.msc in das Fenster ein und klicken Sie dann auf die Schaltfläche OK. 4. Das Fenster „Lokaler Gruppenrichtlinien-Editor“ wird geöffnet. Klicken Sie im Fenster auf den Menüpunkt [Computerkonfiguration/Administrative Vorlagen/Windows-Komponenten]. 5. Suchen Sie im geöffneten Windows-Komponentenmenü den Menüpunkt [Anwendungskompatibilität] und dann im rechten Fenster den Einstellungspunkt [Eigenschaftsseite für Programmkompatibilität entfernen]. 6. Klicken Sie mit der rechten Maustaste auf das Einstellungselement und im Popup-Menü

Häufig gestellte Fragen von Front-End-Interviewern Häufig gestellte Fragen von Front-End-Interviewern Mar 19, 2024 pm 02:24 PM

In Front-End-Entwicklungsinterviews decken häufige Fragen ein breites Themenspektrum ab, darunter HTML/CSS-Grundlagen, JavaScript-Grundlagen, Frameworks und Bibliotheken, Projekterfahrung, Algorithmen und Datenstrukturen, Leistungsoptimierung, domänenübergreifende Anfragen, Front-End-Engineering, Designmuster sowie neue Technologien und Trends. Interviewerfragen sollen die technischen Fähigkeiten, die Projekterfahrung und das Verständnis des Kandidaten für Branchentrends beurteilen. Daher sollten Kandidaten in diesen Bereichen umfassend vorbereitet sein, um ihre Fähigkeiten und Fachkenntnisse unter Beweis zu stellen.

Detaillierte Erläuterung von Win11-Kompatibilitätsproblemen mit Win10-Software Detaillierte Erläuterung von Win11-Kompatibilitätsproblemen mit Win10-Software Jan 05, 2024 am 11:18 AM

Die Software im Win10-System wurde perfekt optimiert, aber für die neuesten Win11-Benutzer muss jeder neugierig sein, ob dieses System unterstützt werden kann. Im Folgenden finden Sie eine detaillierte Einführung in Win11-Software, die Win10 nicht unterstützt. Kommen Sie und finden Sie es heraus zusammen. Unterstützt Win11 Win10-Software: 1. Win10-Systemsoftware und sogar Win7-Systemanwendungen sind gut kompatibel. 2. Laut Feedback von Experten, die das Win11-System verwenden, gibt es derzeit keine Probleme mit der Anwendungsinkompatibilität. 3. Sie können also bedenkenlos ein Upgrade durchführen. Normalen Benutzern wird jedoch empfohlen, mit dem Upgrade zu warten, bis die offizielle Version von Win11 veröffentlicht wird. 4. Win11 ist nicht nur gut kompatibel, sondern verfügt auch über Windo

See all articles