Modern CSS features: how to support older browsers?
Author | Topic |
---|---|
mysh
|
Posted on
Currently, if you try to open vpub-plus from Internet Explorer 11, it will be rendered incorrectly due to the use of modern CSS features. Original vpub actually supports IE 11 better than vpub-plus. As a workaround you can paste CSS into PostCSS with Autoprefixer plugin to support older browsers: https://github.com/hugmouse/postcss-comp Just copy and paste CSS into this tool, go to your instance settings ( Current CSS of vpub-plus (1.11)*, *::before, *::after { box-sizing: border-box; } :root { /* Background Colors */ --color-bg-page: mintcream; --color-bg-error: mistyrose; --color-bg-info: palegreen; --color-bg-table-row: whitesmoke; --color-bg-header-aside: paleturquoise; --color-bg-forum: cornsilk; --color-bg-post-article: white; --color-bg-code: whitesmoke; /* Text Colors */ --color-text-body: black; --color-text-error: red; --color-text-info: green; --color-text-secondary: gray; /* Border Colors */ --color-border: var(--color-text-secondary); /* Fonts */ --font-size-base: 16px; --line-height-base: 1.4; /* Spacing */ --spacing-small: 5px; --spacing-medium: 1em; } @media (prefers-color-scheme: dark) { :root { /* Background Colors */ --color-bg-page: #121212; /* Dark background */ --color-bg-error: #68313b; --color-bg-info: #223723; --color-bg-table-row: #1b1b1b; /* Dark table rows */ --color-bg-header-aside: #2c2c2c; /* Dark header/aside */ --color-bg-forum: #191919; /* Dark forum background */ --color-bg-post-article: #1e1e1e; /* Dark post/article */ --color-bg-code: #2d2d2d; /* Dark code blocks */ /* Text Colors */ --color-text-body: white; --color-text-error: #ff6b6b; /* Lighter red */ --color-text-info: #66bb6a; /* Lighter green */ --color-text-secondary: #b0b0b0; /* Lighter gray */ --color-border: #333; } } /* Body */ body { max-width: 800px; margin: 0 auto; padding: var(--spacing-small); font-family: system-ui, sans-serif; background-color: var(--color-bg-page); color: var(--color-text-body); } a { color: var(--color-text-body); } /* Lists ************************************************************/ .errors { background-color: var(--color-bg-error); color: var(--color-text-error); } .info { background-color: var(--color-bg-info); color: var(--color-text-info); } .topic img { max-width: 100%; height: auto; } .topic p a { overflow-wrap: anywhere; } main { margin-bottom: var(--spacing-medium); } ol.posts, ol.replies { padding: 0; list-style: none; } ol.replies > li:not(:last-child) { margin-bottom: 1em; } /* Posts ************************************************************/ .topic tbody tr:nth-child(even) { background-color: var(--color-bg-table-row); } .signature > * { margin-bottom: 0; } .signature { border-top: 1px solid var(--color-text-secondary); padding-top: 0.5em; } .action { margin: 1em 1em 1em 0; } nav.breadcrumb { padding: 1em; border: 1px solid var(--color-border); margin: 1em 0; } .breadcrumb ul { list-style: none; padding-left: 1em; } .breadcrumb > ul { padding: 0; margin: 0; } .col-author { text-align: center; width: 100px; } table.post { background-color: var(--color-bg-post-article); } table.post .header { background-color: var(--color-bg-header-aside); } article { border: 1px solid var(--color-border); background-color: var(--color-bg-post-article); margin-bottom: 1em; } article > header { background-color: var(--color-bg-header-aside); border-bottom: 1px solid var(--color-text-secondary); padding: 0.3125em 1em; } article > div { padding: 0 1em; } .forum { background-color: var(--color-bg-forum); } /* Start post */ /* With a table */ .post-aside { text-align: center; width: 150px; background-color: var(--color-bg-header-aside); } .post-body { height: 100%; } .post-body, .post-body td, .post-body tr { padding: 0; border: 0; } .post-body tbody { background-color: inherit; } table { border-collapse: collapse; border: 1px solid var(--color-border); width: 100%; } tr, td, th { vertical-align: top; border: 1px solid var(--color-border); padding: 0.5em; } thead { background-color: var(--color-bg-header-aside); } tbody { background-color: var(--color-bg-post-article); } table td pre { overflow: auto; width: 0; min-width: 100%; background-color: var(--color-bg-code); border: 1px solid var(--color-border); } .content h1 { font-size: 1.5em; margin-bottom: 0.5em; } .content h2 { font-size: 1.2em; margin-bottom: 0.5em; } .content h3 { font-size: 1em; margin-bottom: 0.5em; } .content { margin: 1em 0; } /* Forms ************************************************************/ .auth-form { max-width: 200px; } .field { margin-bottom: 1em; } .field label { display: block; margin-bottom: 0.5em; } input[type="text"], input[type="password"], input[type="url"], input[type="number"], textarea { width: 100%; padding: 0.5em; border: 1px solid var(--color-border); border-radius: 4px; box-sizing: border-box; background-color: var(--color-bg-post-article); color: var(--color-text-body); } textarea { height: 250px; resize: vertical; } /* Misc *************************************************************/ blockquote { margin: 1em 0; padding-left: 1em; border-left: 4px solid var(--color-text-info); color: var(--color-text-info); font-style: italic; } blockquote::before { content: "> "; } .center { text-align: center; } .grow { width: 100%; } hr { border: none; height: 1px; background-color: var(--color-text-secondary); } .small { font-size: 0.875em; color: var(--color-text-secondary); } code { font-family: monospace; background-color: var(--color-bg-code); padding-left: 0.3em; padding-right: 0.3rem; border-radius: 3px; border: 1px solid var(--color-border); } pre code { background-color: unset; border: none; padding-left: unset; padding-right: unset; } /* Insane hacks for the table styling on mobile devices */ @media (max-width: 600px) { body { padding: 0.5em; } header nav { text-align: center; } table.topic thead { display: none; /* Hide the table header for mobile */ } table.topic tbody, table.topic tr, table.topic td { display: block; width: 100%; } table.topic td { border: none; padding: 0; } tbody tr td.col-author { display: flex; justify-content: start; align-items: center; gap: 0.5em; flex-direction: row-reverse; } td.col-author p { margin: 0; } } a:focus, button:focus, input:focus, textarea:focus { outline: 2px solid var(--color-bg-header-aside); outline-offset: 2px; } svg.not-selectable { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } div.field input + p, div.field textarea + p{ margin-top: 0.5rem; opacity: 0.8; font-size: 0.80rem; } div.search-result { padding: 1em; border: 1px solid var(--color-border); background-color: var(--color-bg-post-article); margin: 1em 0; } div.search-result div.content { margin-bottom: 0; } div.search-result div.content * { font-size: 16px!important; display: inline; font-variant: normal; } form.search-form { display: flex; gap: 0.5rem; align-items: center; justify-content: center; } Processed through PostCSS + Autoprefixer*, *::before, *::after { -moz-box-sizing: border-box; box-sizing: border-box; } :root { /* Background Colors */ --color-bg-page: mintcream; --color-bg-error: mistyrose; --color-bg-info: palegreen; --color-bg-table-row: whitesmoke; --color-bg-header-aside: paleturquoise; --color-bg-forum: cornsilk; --color-bg-post-article: white; --color-bg-code: whitesmoke; /* Text Colors */ --color-text-body: black; --color-text-error: red; --color-text-info: green; --color-text-secondary: gray; /* Border Colors */ --color-border: var(--color-text-secondary); /* Fonts */ --font-size-base: 16px; --line-height-base: 1.4; /* Spacing */ --spacing-small: 5px; --spacing-medium: 1em; } @media (prefers-color-scheme: dark) { :root { /* Background Colors */ --color-bg-page: #121212; /* Dark background */ --color-bg-error: #68313b; --color-bg-info: #223723; --color-bg-table-row: #1b1b1b; /* Dark table rows */ --color-bg-header-aside: #2c2c2c; /* Dark header/aside */ --color-bg-forum: #191919; /* Dark forum background */ --color-bg-post-article: #1e1e1e; /* Dark post/article */ --color-bg-code: #2d2d2d; /* Dark code blocks */ /* Text Colors */ --color-text-body: white; --color-text-error: #ff6b6b; /* Lighter red */ --color-text-info: #66bb6a; /* Lighter green */ --color-text-secondary: #b0b0b0; /* Lighter gray */ --color-border: #333; } } /* Body */ body { max-width: 800px; margin: 0 auto; padding: 5px; padding: var(--spacing-small); font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif; background-color: mintcream; background-color: var(--color-bg-page); color: black; color: var(--color-text-body); } a { color: black; color: var(--color-text-body); } /* Lists ************************************************************/ .errors { background-color: mistyrose; background-color: var(--color-bg-error); color: red; color: var(--color-text-error); } .info { background-color: palegreen; background-color: var(--color-bg-info); color: green; color: var(--color-text-info); } .topic img { max-width: 100%; height: auto; } .topic p a { word-wrap: anywhere; } main { margin-bottom: 1em; margin-bottom: var(--spacing-medium); } ol.posts, ol.replies { padding: 0; list-style: none; } ol.replies > li:not(:last-child) { margin-bottom: 1em; } /* Posts ************************************************************/ .topic tbody tr:nth-child(even) { background-color: whitesmoke; background-color: var(--color-bg-table-row); } .signature > * { margin-bottom: 0; } .signature { border-top: 1px solid gray; border-top: 1px solid var(--color-text-secondary); padding-top: 0.5em; } .action { margin: 1em 1em 1em 0; } nav.breadcrumb { padding: 1em; border: 1px solid gray; border: 1px solid var(--color-border); margin: 1em 0; } .breadcrumb ul { list-style: none; padding-left: 1em; } .breadcrumb > ul { padding: 0; margin: 0; } .col-author { text-align: center; width: 100px; } table.post { background-color: white; background-color: var(--color-bg-post-article); } table.post .header { background-color: paleturquoise; background-color: var(--color-bg-header-aside); } article { border: 1px solid gray; border: 1px solid var(--color-border); background-color: white; background-color: var(--color-bg-post-article); margin-bottom: 1em; } article > header { background-color: paleturquoise; background-color: var(--color-bg-header-aside); border-bottom: 1px solid gray; border-bottom: 1px solid var(--color-text-secondary); padding: 0.3125em 1em; } article > div { padding: 0 1em; } .forum { background-color: cornsilk; background-color: var(--color-bg-forum); } /* Start post */ /* With a table */ .post-aside { text-align: center; width: 150px; background-color: paleturquoise; background-color: var(--color-bg-header-aside); } .post-body { height: 100%; } .post-body, .post-body td, .post-body tr { padding: 0; border: 0; } .post-body tbody { background-color: inherit; } table { border-collapse: collapse; border: 1px solid gray; border: 1px solid var(--color-border); width: 100%; } tr, td, th { vertical-align: top; border: 1px solid gray; border: 1px solid var(--color-border); padding: 0.5em; } thead { background-color: paleturquoise; background-color: var(--color-bg-header-aside); } tbody { background-color: white; background-color: var(--color-bg-post-article); } table td pre { overflow: auto; width: 0; min-width: 100%; background-color: whitesmoke; background-color: var(--color-bg-code); border: 1px solid gray; border: 1px solid var(--color-border); } .content h1 { font-size: 1.5em; margin-bottom: 0.5em; } .content h2 { font-size: 1.2em; margin-bottom: 0.5em; } .content h3 { font-size: 1em; margin-bottom: 0.5em; } .content { margin: 1em 0; } /* Forms ************************************************************/ .auth-form { max-width: 200px; } .field { margin-bottom: 1em; } .field label { display: block; margin-bottom: 0.5em; } input[type="text"], input[type="password"], input[type="url"], input[type="number"], textarea { width: 100%; padding: 0.5em; border: 1px solid gray; border: 1px solid var(--color-border); border-radius: 4px; -moz-box-sizing: border-box; box-sizing: border-box; background-color: white; background-color: var(--color-bg-post-article); color: black; color: var(--color-text-body); } textarea { height: 250px; resize: vertical; } /* Misc *************************************************************/ blockquote { margin: 1em 0; padding-left: 1em; border-left: 4px solid green; border-left: 4px solid var(--color-text-info); color: green; color: var(--color-text-info); font-style: italic; } blockquote::before { content: "> "; } .center { text-align: center; } .grow { width: 100%; } hr { border: none; height: 1px; background-color: gray; background-color: var(--color-text-secondary); } .small { font-size: 0.875em; color: gray; color: var(--color-text-secondary); } code { font-family: monospace; background-color: whitesmoke; background-color: var(--color-bg-code); padding-left: 0.3em; padding-right: 0.3rem; border-radius: 3px; border: 1px solid gray; border: 1px solid var(--color-border); } pre code { background-color: transparent; background-color: initial; border: none; padding-left: 0; padding-left: initial; padding-right: 0; padding-right: initial; } /* Insane hacks for the table styling on mobile devices */ @media (max-width: 600px) { body { padding: 0.5em; } header nav { text-align: center; } table.topic thead { display: none; /* Hide the table header for mobile */ } table.topic tbody, table.topic tr, table.topic td { display: block; width: 100%; } table.topic td { border: none; padding: 0; } tbody tr td.col-author { display: -moz-box; display: flex; -moz-box-pack: start; justify-content: start; -moz-box-align: center; align-items: center; gap: 0.5em; -moz-box-orient: horizontal; -moz-box-direction: reverse; flex-direction: row-reverse; } td.col-author p { margin: 0; } } a:focus, button:focus, input:focus, textarea:focus { outline: 2px solid paleturquoise; outline: 2px solid var(--color-bg-header-aside); outline-offset: 2px; } svg.not-selectable { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } div.field input + p, div.field textarea + p{ margin-top: 0.5rem; opacity: 0.8; font-size: 0.80rem; } div.search-result { padding: 1em; border: 1px solid gray; border: 1px solid var(--color-border); background-color: white; background-color: var(--color-bg-post-article); margin: 1em 0; } div.search-result div.content { margin-bottom: 0; } div.search-result div.content * { font-size: 16px!important; display: inline; -webkit-font-feature-settings: normal; -moz-font-feature-settings: normal; font-feature-settings: normal; font-variant: normal; } form.search-form { display: -moz-box; display: flex; gap: 0.5rem; -moz-box-align: center; align-items: center; -moz-box-pack: center; justify-content: center; } |