Make WordPress Core

Changeset 60966


Ignore:
Timestamp:
10/17/2025 09:04:52 PM (5 months ago)
Author:
joedolson
Message:

Twenty Seventeen: Remove code and checks for obsolete browsers.

Remove IE specific code from Twenty Seventeen. Remove custom IE stylesheet contents, the HTML5 shiv contents (also targeting Safari 4.x and Firefox 3.x), and IE-specific code.

Props desrosj, sabernhardt, neychok, joedolson.
Fixes #58836.

Location:
trunk/src/wp-content/themes/twentyseventeen
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-content/themes/twentyseventeen/assets/css/ie8.css

    r46586 r60966  
    1 /*
    2 Theme Name: Twenty Seventeen
    3 Description: IE8 specific style.
    4 */
    5 
    6 body {
    7     font-size: 16px;
    8 }
    9 
    10 h1 {
    11     font-size: 30px;
    12     font-size: 1.875rem;
    13 }
    14 
    15 h2,
    16 .page .panel-content .recent-posts .entry-title {
    17     font-size: 26px;
    18     font-size: 1.625rem;
    19 }
    20 
    21 h3 {
    22     font-size: 22px;
    23     font-size: 1.375rem;
    24 }
    25 
    26 h4 {
    27     font-size: 18px;
    28     font-size: 1.125rem;
    29 }
    30 
    31 h5 {
    32     font-size: 13px;
    33     font-size: 0.8125rem;
    34 }
    35 
    36 h6 {
    37     font-size: 16px;
    38     font-size: 1rem;
    39 }
    40 
    41 img {
    42     width: inherit;  /* Make images fill their parent's space. */
    43 }
    44 
    45 /* Fixes linked images */
    46 .entry-content a img,
    47 .widget a img {
    48     filter: progid:DXImageTransform.Microsoft.DropShadow(OffX=0, OffY=5, Color=#ffffff);
    49 }
    50 
    51 /* Layout */
    52 
    53 .site-content {
    54     padding: 6.5em 0 0;
    55 }
    56 
    57 /* Site Branding */
    58 
    59 .custom-header {
    60     overflow: hidden;
    61 }
    62 
    63 .has-header-image.twentyseventeen-front-page .custom-header,
    64 .has-header-image.home.blog .custom-header {
    65     display: block;
    66 }
    67 
    68 .custom-header-media {
    69     background-position: bottom center;
    70 }
    71 
    72 .site-branding {
    73     padding: 45px 0;
    74 }
    75 
    76 .has-header-image.twentyseventeen-front-page .site-branding,
    77 .has-header-image.home.blog .site-branding {
    78     bottom: 0;
    79     display: block;
    80     left: 0;
    81     height: auto;
    82     padding-top: 0;
    83     position: absolute;
    84     width: 100%;
    85 }
    86 
    87 .has-header-image .custom-header-media img {
    88     left: 0;
    89     top: 0;
    90 }
    91 
    92 .site-title {
    93     font-size: 36px;
    94     font-weight: 700;
    95 }
    96 
    97 .site-description {
    98     font-size: 16px;
    99 }
    100 
    101 /* Main Navigation */
    102 
    103 .navigation-top {
    104     background: #fff;
    105     position: relative;
    106     z-index: 10;
    107 }
    108 
    109 .menu-toggle {
    110     width: 150px;
    111 }
    112 
    113 .main-navigation ul#top-menu {
    114     margin-bottom: -1px;
    115     padding: 0;
    116 }
    117 
    118 .no-svg .dropdown-toggle {
    119     padding: 0.25em 0 0;
    120 }
    121 
    122 .no-svg .dropdown-toggle.toggled-on {
    123     padding: 0.75em 0 0;
    124 }
    125 
    126 .dropdown-toggle .svg-fallback.icon-angle-down {
    127     -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=-1, M12=1.2246467991473532e-16, M21=-1.2246467991473532e-16, M22=-1, SizingMethod='auto expand')";
    128 }
    129 
    130 .dropdown-toggle.toggled-on .svg-fallback.icon-angle-down {
    131     -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1, M12=0, M21=0, M22=1, SizingMethod='auto expand')";
    132 }
    133 
    134 /* Front Page */
    135 
    136 .twentyseventeen-front-page.has-header-image .custom-header,
    137 .blog.home.has-header-image .custom-header,
    138 .panel-image {
    139     height: 800px;
    140     max-height: 800px;
    141     padding-top: 0;
    142 }
    143 
    144 .twentyseventeen-front-page .custom-header-media,
    145 .blog.home .custom-header-media {
    146     background-position: center center;
    147 }
    148 
    149 .twentyseventeen-front-page.has-header-image .site-branding,
    150 .home.blog.has-header-image .site-branding {
    151     bottom: 20px;
    152     position: absolute;
    153     width: 100%;
    154 }
    155 
    156 .page .panel-content .entry-title,
    157 .page-title,
    158 .page .entry-title {
    159     font-size: 14px;
    160     font-size: 0.875rem;
    161     font-weight: 700;
    162     letter-spacing: 0.14em;
    163     text-transform: uppercase;
    164 }
    165 
    166 /* Posts */
    167 
    168 .blog .site-main > article,
    169 .archive .site-main > article,
    170 .search .site-main > article {
    171     padding-bottom: 4em;
    172 }
    173 
    174 time.updated {
    175     display: none;
    176 }
    177 
    178 time.published {
    179     display: inline-block;
    180 }
    181 
    182 .blog .entry-title {
    183     padding-top: 0;
    184 }
    185 
    186 .single-post .entry-title,
    187 .page .entry-title,
    188 .entry-meta + .entry-title {
    189     font-size: 26px;
    190     font-weight: 400;
    191     letter-spacing: normal;
    192     padding-top: 0;
    193     text-transform: none;
    194 }
    195 
    196 .entry-footer .cat-links,
    197 .entry-footer .tags-links {
    198     padding-left: 0;
    199 }
    200 
    201 .comment-author .avatar {
    202     z-index: -1;
    203 }
    204 
    205 ol.children .children {
    206     padding-left: 2em;
    207 }
    208 
    209 /* RTL Styles */
    210 
    211 .rtl .has-header-image.twentyseventeen-front-page .site-branding,
    212 .rtl .has-header-image.home.blog .site-branding {
    213     left: auto;
    214     right: 0;
    215 }
    216 
    217 .rtl .entry-footer .cat-links,
    218 .rtl .entry-footer .tags-links {
    219     padding-right: 0;
    220 }
    221 
    222 .rtl ol.children .children {
    223     padding-left: 0;
    224     padding-right: 2em;
    225 }
     1/* This theme does not support Internet Explorer since version 4.0. */
  • trunk/src/wp-content/themes/twentyseventeen/assets/css/ie9.css

    r46586 r60966  
    1 /*
    2 Theme Name: Twenty Seventeen
    3 Description: IE9 specific styles.
    4 */
    5 
    6 .has-header-image.twentyseventeen-front-page .custom-header,
    7 .has-header-video.twentyseventeen-front-page .custom-header,
    8 .has-header-image.home.blog .custom-header,
    9 .has-header-video.home.blog .custom-header {
    10     height: 300px;
    11 }
    12 
    13 .has-header-image .custom-header-media img,
    14 .has-header-video .custom-header-media video,
    15 .has-header-video .custom-header-media iframe {
    16     min-width: 100%;
    17 }
    18 
    19 @media screen and (min-width: 30em) {
    20 
    21     .has-header-image.twentyseventeen-front-page .custom-header,
    22     .has-header-video.twentyseventeen-front-page .custom-header,
    23     .has-header-image.home.blog .custom-header,
    24     .has-header-video.home.blog .custom-header,
    25     .twentyseventeen-front-page.has-header-image .custom-header-media,
    26     .home.blog.has-header-image .custom-header-media,
    27     .panel-image {
    28         height: 700px;
    29     }
    30 }
    31 
    32 @media screen and (min-width: 48em) {
    33 
    34     .has-header-image.twentyseventeen-front-page .custom-header,
    35     .has-header-video.twentyseventeen-front-page .custom-header,
    36     .has-header-image.home.blog .custom-header,
    37     .has-header-video.home.blog .custom-header,
    38     .twentyseventeen-front-page.has-header-image .custom-header-media,
    39     .home.blog.has-header-image .custom-header-media,
    40     .panel-image {
    41         height: 1000px;
    42     }
    43 }
     1/* This theme does not support Internet Explorer since version 4.0. */
  • trunk/src/wp-content/themes/twentyseventeen/assets/js/html5.js

    r56149 r60966  
    1 /**
    2 * @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
    3 */
    4 ;(function(window, document) {
    5 /*jshint evil:true */
    6   /** version */
    7   var version = '3.7.3';
    8 
    9   /** Preset options */
    10   var options = window.html5 || {};
    11 
    12   /** Used to skip problem elements */
    13   var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
    14 
    15   /** Not all elements can be cloned in IE **/
    16   var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
    17 
    18   /** Detect whether the browser supports default html5 styles */
    19   var supportsHtml5Styles;
    20 
    21   /** Name of the expando, to work with multiple documents or to re-shiv one document */
    22   var expando = '_html5shiv';
    23 
    24   /** The id for the the documents expando */
    25   var expanID = 0;
    26 
    27   /** Cached data for each document */
    28   var expandoData = {};
    29 
    30   /** Detect whether the browser supports unknown elements */
    31   var supportsUnknownElements;
    32 
    33   (function() {
    34     try {
    35         var a = document.createElement('a');
    36         a.innerHTML = '<xyz></xyz>';
    37         //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
    38         supportsHtml5Styles = ('hidden' in a);
    39 
    40         supportsUnknownElements = a.childNodes.length == 1 || (function() {
    41           // assign a false positive if unable to shiv
    42           (document.createElement)('a');
    43           var frag = document.createDocumentFragment();
    44           return (
    45             typeof frag.cloneNode == 'undefined' ||
    46             typeof frag.createDocumentFragment == 'undefined' ||
    47             typeof frag.createElement == 'undefined'
    48           );
    49         }());
    50     } catch(e) {
    51       // assign a false positive if detection fails => unable to shiv
    52       supportsHtml5Styles = true;
    53       supportsUnknownElements = true;
    54     }
    55 
    56   }());
    57 
    58   /*--------------------------------------------------------------------------*/
    59 
    60   /**
    61    * Creates a style sheet with the given CSS text and adds it to the document.
    62    * @private
    63    * @param {Document} ownerDocument The document.
    64    * @param {String} cssText The CSS text.
    65    * @returns {StyleSheet} The style element.
    66    */
    67   function addStyleSheet(ownerDocument, cssText) {
    68     var p = ownerDocument.createElement('p'),
    69         parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
    70 
    71     p.innerHTML = 'x<style>' + cssText + '</style>';
    72     return parent.insertBefore(p.lastChild, parent.firstChild);
    73   }
    74 
    75   /**
    76    * Returns the value of `html5.elements` as an array.
    77    * @private
    78    * @returns {Array} An array of shived element node names.
    79    */
    80   function getElements() {
    81     var elements = html5.elements;
    82     return typeof elements == 'string' ? elements.split(' ') : elements;
    83   }
    84 
    85   /**
    86    * Extends the built-in list of html5 elements
    87    * @memberOf html5
    88    * @param {String|Array} newElements whitespace separated list or array of new element names to shiv
    89    * @param {Document} ownerDocument The context document.
    90    */
    91   function addElements(newElements, ownerDocument) {
    92     var elements = html5.elements;
    93     if(typeof elements != 'string'){
    94       elements = elements.join(' ');
    95     }
    96     if(typeof newElements != 'string'){
    97       newElements = newElements.join(' ');
    98     }
    99     html5.elements = elements +' '+ newElements;
    100     shivDocument(ownerDocument);
    101   }
    102 
    103    /**
    104    * Returns the data associated to the given document
    105    * @private
    106    * @param {Document} ownerDocument The document.
    107    * @returns {Object} An object of data.
    108    */
    109   function getExpandoData(ownerDocument) {
    110     var data = expandoData[ownerDocument[expando]];
    111     if (!data) {
    112         data = {};
    113         expanID++;
    114         ownerDocument[expando] = expanID;
    115         expandoData[expanID] = data;
    116     }
    117     return data;
    118   }
    119 
    120   /**
    121    * returns a shived element for the given nodeName and document
    122    * @memberOf html5
    123    * @param {String} nodeName name of the element
    124    * @param {Document|DocumentFragment} ownerDocument The context document.
    125    * @returns {Object} The shived element.
    126    */
    127   function createElement(nodeName, ownerDocument, data){
    128     if (!ownerDocument) {
    129         ownerDocument = document;
    130     }
    131     if(supportsUnknownElements){
    132         return ownerDocument.createElement(nodeName);
    133     }
    134     if (!data) {
    135         data = getExpandoData(ownerDocument);
    136     }
    137     var node;
    138 
    139     if (data.cache[nodeName]) {
    140         node = data.cache[nodeName].cloneNode();
    141     } else if (saveClones.test(nodeName)) {
    142         node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
    143     } else {
    144         node = data.createElem(nodeName);
    145     }
    146 
    147     // Avoid adding some elements to fragments in IE < 9 because
    148     // * Attributes like `name` or `type` cannot be set/changed once an element
    149     //   is inserted into a document/fragment
    150     // * Link elements with `src` attributes that are inaccessible, as with
    151     //   a 403 response, will cause the tab/window to crash
    152     // * Script elements appended to fragments will execute when their `src`
    153     //   or `text` property is set
    154     return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
    155   }
    156 
    157   /**
    158    * returns a shived DocumentFragment for the given document
    159    * @memberOf html5
    160    * @param {Document} ownerDocument The context document.
    161    * @returns {Object} The shived DocumentFragment.
    162    */
    163   function createDocumentFragment(ownerDocument, data){
    164     if (!ownerDocument) {
    165         ownerDocument = document;
    166     }
    167     if(supportsUnknownElements){
    168         return ownerDocument.createDocumentFragment();
    169     }
    170     data = data || getExpandoData(ownerDocument);
    171     var clone = data.frag.cloneNode(),
    172         i = 0,
    173         elems = getElements(),
    174         l = elems.length;
    175     for(;i<l;i++){
    176         clone.createElement(elems[i]);
    177     }
    178     return clone;
    179   }
    180 
    181   /**
    182    * Shivs the `createElement` and `createDocumentFragment` methods of the document.
    183    * @private
    184    * @param {Document|DocumentFragment} ownerDocument The document.
    185    * @param {Object} data of the document.
    186    */
    187   function shivMethods(ownerDocument, data) {
    188     if (!data.cache) {
    189         data.cache = {};
    190         data.createElem = ownerDocument.createElement;
    191         data.createFrag = ownerDocument.createDocumentFragment;
    192         data.frag = data.createFrag();
    193     }
    194 
    195 
    196     ownerDocument.createElement = function(nodeName) {
    197       //abort shiv
    198       if (!html5.shivMethods) {
    199           return data.createElem(nodeName);
    200       }
    201       return createElement(nodeName, ownerDocument, data);
    202     };
    203 
    204     ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
    205       'var n=f.cloneNode(),c=n.createElement;' +
    206       'h.shivMethods&&(' +
    207         // unroll the `createElement` calls
    208         getElements().join().replace(/[\w\-:]+/g, function(nodeName) {
    209           data.createElem(nodeName);
    210           data.frag.createElement(nodeName);
    211           return 'c("' + nodeName + '")';
    212         }) +
    213       ');return n}'
    214     )(html5, data.frag);
    215   }
    216 
    217   /*--------------------------------------------------------------------------*/
    218 
    219   /**
    220    * Shivs the given document.
    221    * @memberOf html5
    222    * @param {Document} ownerDocument The document to shiv.
    223    * @returns {Document} The shived document.
    224    */
    225   function shivDocument(ownerDocument) {
    226     if (!ownerDocument) {
    227         ownerDocument = document;
    228     }
    229     var data = getExpandoData(ownerDocument);
    230 
    231     if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
    232       data.hasCSS = !!addStyleSheet(ownerDocument,
    233         // corrects block display not defined in IE6/7/8/9
    234         'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
    235         // adds styling not present in IE6/7/8/9
    236         'mark{background:#FF0;color:#000}' +
    237         // hides non-rendered elements
    238         'template{display:none}'
    239       );
    240     }
    241     if (!supportsUnknownElements) {
    242       shivMethods(ownerDocument, data);
    243     }
    244     return ownerDocument;
    245   }
    246 
    247   /*--------------------------------------------------------------------------*/
    248 
    249   /**
    250    * The `html5` object is exposed so that more elements can be shived and
    251    * existing shiving can be detected on iframes.
    252    * @type Object
    253    * @example
    254    *
    255    * // options can be changed before the script is included
    256    * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
    257    */
    258   var html5 = {
    259 
    260     /**
    261      * An array or space separated string of node names of the elements to shiv.
    262      * @memberOf html5
    263      * @type Array|String
    264      */
    265     'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video',
    266 
    267     /**
    268      * current version of html5shiv
    269      */
    270     'version': version,
    271 
    272     /**
    273      * A flag to indicate that the HTML5 style sheet should be inserted.
    274      * @memberOf html5
    275      * @type Boolean
    276      */
    277     'shivCSS': (options.shivCSS !== false),
    278 
    279     /**
    280      * Is equal to true if a browser supports creating unknown/HTML5 elements
    281      * @memberOf html5
    282      * @type boolean
    283      */
    284     'supportsUnknownElements': supportsUnknownElements,
    285 
    286     /**
    287      * A flag to indicate that the document's `createElement` and `createDocumentFragment`
    288      * methods should be overwritten.
    289      * @memberOf html5
    290      * @type Boolean
    291      */
    292     'shivMethods': (options.shivMethods !== false),
    293 
    294     /**
    295      * A string to describe the type of `html5` object ("default" or "default print").
    296      * @memberOf html5
    297      * @type String
    298      */
    299     'type': 'default',
    300 
    301     // shivs the document according to the specified `html5` object options
    302     'shivDocument': shivDocument,
    303 
    304     //creates a shived element
    305     createElement: createElement,
    306 
    307     //creates a shived documentFragment
    308     createDocumentFragment: createDocumentFragment,
    309 
    310     //extends list of elements
    311     addElements: addElements
    312   };
    313 
    314   /*--------------------------------------------------------------------------*/
    315 
    316   // expose html5
    317   window.html5 = html5;
    318 
    319   // shiv the document
    320   shivDocument(document);
    321 
    322   if(typeof module == 'object' && module.exports){
    323     module.exports = html5;
    324   }
    325 
    326 }(typeof window !== "undefined" ? window : this, document));
     1// This theme does not support Internet Explorer since version 4.0.
  • trunk/src/wp-content/themes/twentyseventeen/functions.php

    r60913 r60966  
    472472    }
    473473
    474     // Register the Internet Explorer 9 specific stylesheet, to fix display issues in the Customizer.
     474    // Register handles for removed stylesheets and scripts.
    475475    if ( is_customize_preview() ) {
    476         wp_register_style( 'twentyseventeen-ie9', get_theme_file_uri( '/assets/css/ie9.css' ), array( 'twentyseventeen-style' ), '20161202' );
    477         wp_style_add_data( 'twentyseventeen-ie9', 'conditional', 'IE 9' );
    478     }
    479 
    480     // Register the Internet Explorer 8 specific stylesheet.
    481     wp_register_style( 'twentyseventeen-ie8', get_theme_file_uri( '/assets/css/ie8.css' ), array( 'twentyseventeen-style' ), '20161202' );
    482     wp_style_add_data( 'twentyseventeen-ie8', 'conditional', 'lt IE 9' );
    483 
    484     // Register the html5 shiv.
    485     wp_register_script( 'html5', get_theme_file_uri( '/assets/js/html5.js' ), array(), '20161020' );
    486     wp_script_add_data( 'html5', 'conditional', 'lt IE 9' );
    487 
    488     // Skip-link fix is no longer enqueued by default.
     476        wp_register_style( 'twentyseventeen-ie9', false, array( 'twentyseventeen-style' ) );
     477    }
     478    wp_register_style( 'twentyseventeen-ie8', false, array( 'twentyseventeen-style' ) );
     479    wp_register_script( 'html5', false );
    489480    wp_register_script( 'twentyseventeen-skip-link-focus-fix', get_theme_file_uri( '/assets/js/skip-link-focus-fix.js' ), array(), '20161114', array( 'in_footer' => true ) );
    490481
  • trunk/src/wp-content/themes/twentyseventeen/readme.txt

    r60159 r60966  
    4040Twenty Seventeen bundles the following third-party resources:
    4141
    42 HTML5 Shiv, Copyright 2014 Alexander Farkas
    43 Licenses: MIT/GPL2
    44 Source: https://github.com/aFarkas/html5shiv
    45 
    4642jQuery scrollTo, Copyright 2007-2015 Ariel Flesler
    4743License: MIT
Note: See TracChangeset for help on using the changeset viewer.