Changeset 27559
- Timestamp:
- 03/16/2014 06:27:38 PM (11 years ago)
- Location:
- trunk/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-admin/css/common.css
r27547 r27559 1789 1789 } 1790 1790 1791 /* Header on thickbox */ 1792 #plugin-information-header { 1791 /* Plugin install thickbox */ 1792 #plugin-information { 1793 background: #fcfcfc; 1794 position: fixed; 1795 top: 0; 1796 right: 0; 1797 bottom: 0; 1798 left: 0; 1799 height: auto; 1800 padding: 0; 1801 } 1802 1803 #plugin-information-title { 1804 padding: 0 36px 0 16px; 1805 font-size: 18px; 1806 font-weight: 600; 1807 line-height: 36px; 1808 top: 0; 1809 right: 0; 1810 left: 0; 1811 height: 36px; 1812 border-bottom: 1px solid #ddd; 1813 overflow: hidden; 1814 text-overflow: ellipsis; 1815 white-space: nowrap; 1816 } 1817 1818 #plugin-information-tabs { 1819 padding: 0 16px; 1820 position: absolute; 1821 top: 56px; 1822 right: 0; 1823 left: 0; 1824 height: 36px; 1825 z-index: 1; 1826 } 1827 1828 #plugin-information-tabs a { 1829 position: relative; 1830 float: left; 1831 padding: 8px 10px 9px; 1793 1832 margin: 0; 1794 padding: 0 5px; 1795 font-weight: 600; 1796 position: relative; 1797 border-bottom: 1px solid #dfdfdf; 1798 height: 2.5em; 1799 background-color: #f9f9f9; 1800 } 1801 #plugin-information ul#sidemenu { 1802 font-weight: normal; 1803 margin: 0 5px; 1833 height: 18px; 1834 line-height: 18px; 1835 font-size: 14px; 1836 text-decoration: none; 1837 transition: none; 1838 } 1839 1840 #plugin-information-tabs a.current { 1841 margin: -1px -1px 0; 1842 background: #fff; 1843 border: 1px solid #ddd; 1844 border-bottom: none; 1845 color: #333; 1846 } 1847 1848 #plugin-information-tabs a:active, 1849 #plugin-information-tabs a:focus { 1850 outline: none; 1851 } 1852 1853 #plugin-information-content { 1854 background: #fff; 1855 border-top: 1px solid #ddd; 1856 border-bottom: 1px solid #ddd; 1804 1857 position: absolute; 1858 top: 90px; 1859 right: 0; 1860 bottom: 44px; 1805 1861 left: 0; 1806 bottom: -1px; 1807 } 1808 1809 /* Install sidemenu */ 1810 #plugin-information { 1811 height: auto; 1812 } 1813 1814 #plugin-information p.action-button { 1815 width: 100%; 1816 padding-bottom: 0; 1817 margin-bottom: 0; 1818 margin-top: 10px; 1819 -webkit-border-top-left-radius: 3px; 1820 border-top-left-radius: 3px; 1821 -webkit-border-bottom-left-radius: 3px; 1822 border-bottom-left-radius: 3px; 1823 } 1824 1825 #plugin-information .action-button a { 1826 background-color: #2ea2cc; 1827 color: #fff; 1828 text-align: center; 1829 font-weight: 600; 1830 text-decoration: none; 1831 display: block; 1832 line-height: 2em; 1833 } 1834 1835 #plugin-information h2 { 1836 clear: none !important; 1837 margin-right: 200px; 1862 overflow: auto; 1863 } 1864 1865 #section-holder { 1866 margin: 0; 1867 padding: 10px 26px; 1868 position: absolute; 1869 top: 0; 1870 right: 250px; 1871 bottom: 0; 1872 left: 0; 1873 } 1874 1875 #section-holder .updated { 1876 margin: 16px 0; 1838 1877 } 1839 1878 1840 1879 #plugin-information .fyi { 1841 margin: 0 10px 50px; 1842 width: 210px; 1880 background: #f3f3f3; 1881 border: 1px solid #ddd; 1882 border-top: 0; 1883 color: #666; 1884 padding: 16px; 1885 position: absolute; 1886 top: 0; 1887 right: 0; 1888 width: 217px; 1889 } 1890 1891 #plugin-information .fyi strong { 1892 color: #464646; 1893 } 1894 1895 #plugin-information .fyi h3 { 1896 font-weight: bold; 1897 text-transform: uppercase; 1898 font-size: 12px; 1899 color: #666; 1900 margin: 24px 0 8px; 1843 1901 } 1844 1902 … … 1849 1907 } 1850 1908 1851 #plugin-information .fyi h2.mainheader {1852 padding: 5px;1853 -webkit-border-top-left-radius: 3px;1854 border-top-left-radius: 3px;1855 background-color: #cee1ef;1856 }1857 1858 1909 #plugin-information .fyi ul { 1859 padding: 10px 5px 10px 7px;1910 padding: 0; 1860 1911 margin: 0; 1861 1912 list-style: none; 1862 -webkit-border-bottom-left-radius: 3px;1863 border-bottom-left-radius: 3px;1864 background-color: #eaf3fa;1865 1913 } 1866 1914 1867 1915 #plugin-information .fyi li { 1868 margin-right: 0; 1869 } 1870 1871 #plugin-information #section-holder { 1872 padding: 10px; 1916 margin: 0 0 10px; 1917 } 1918 1919 #plugin-information-footer { 1920 padding: 8px 16px; 1921 position: absolute; 1922 right: 0; 1923 bottom: 0; 1924 left: 0; 1873 1925 } 1874 1926 1875 1927 #plugin-information .section ul, 1876 1928 #plugin-information .section ol { 1877 margin-left: 16px; 1878 list-style-type: square; 1879 list-style-image: none; 1929 list-style-type: disc; 1930 margin-left: 24px; 1931 } 1932 1933 #plugin-information .section, 1934 #plugin-information .section p { 1935 font-size: 14px; 1936 line-height: 1.7; 1880 1937 } 1881 1938 … … 1887 1944 #plugin-information #section-screenshots li img { 1888 1945 vertical-align: text-top; 1946 margin-top: 16px; 1889 1947 max-width: 100%; 1890 1948 width: auto; 1891 1949 height: auto; 1950 -webkit-box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.3 ); 1951 box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.3 ); 1892 1952 } 1893 1953 … … 1895 1955 font-style: italic; 1896 1956 padding-left: 20px; 1897 padding-bottom: 2em;1898 }1899 1900 #plugin-information #section-screenshots ol,1901 #plugin-information .updated,1902 #plugin-information pre {1903 margin-right: 215px;1904 1957 } 1905 1958 … … 1910 1963 } 1911 1964 1912 #plugin-information pre,1913 #plugin-information code {1914 background-color: #ededff;1915 }1916 1917 1965 .plugin-version-author-uri { 1918 1966 font-size: 13px; 1967 } 1968 1969 @media screen and ( max-width: 782px ) { 1970 #plugin-information-content { 1971 overflow: auto; 1972 bottom: 62px; 1973 } 1974 1975 #plugin-information .fyi { 1976 border: 1px solid #ddd; 1977 position: static; 1978 width: auto; 1979 margin: 26px 26px 16px; 1980 } 1981 1982 #section-holder { 1983 position: static; 1984 } 1985 1986 #plugin-information .fyi h3, 1987 #plugin-information .fyi small { 1988 display: none; 1989 } 1990 1991 #plugin-information-footer { 1992 padding: 12px 16px; 1993 height: 37px; 1994 } 1995 } 1996 1997 /* Thickbox for Plugin Install screen */ 1998 body.plugin-install-php #TB_window, 1999 body.index-php #TB_window { 2000 background: #fcfcfc url( ../images/spinner.gif ) no-repeat center; 2001 } 2002 2003 @media print, 2004 (-o-min-device-pixel-ratio: 5/4), 2005 (-webkit-min-device-pixel-ratio: 1.25), 2006 (min-resolution: 120dpi) { 2007 2008 body.plugin-install-php #TB_window, 2009 body.index-php #TB_window { 2010 background: #fcfcfc url( ../images/spinner-2x.gif ) no-repeat center; 2011 } 2012 } 2013 2014 body.plugin-install-php #TB_title, 2015 body.index-php #TB_title { 2016 float: left; 2017 height: 1px; 2018 } 2019 2020 body.plugin-install-php #TB_ajaxWindowTitle, 2021 body.index-php #TB_ajaxWindowTitle { 2022 display: none; 2023 } 2024 2025 body.plugin-install-php .tb-close-icon, 2026 body.index-php .tb-close-icon { 2027 line-height: 36px; 2028 width: 36px; 2029 height: 36px; 2030 } 2031 2032 body.plugin-install-php .tb-close-icon:before, 2033 body.index-php .tb-close-icon:before { 2034 line-height: 36px; 1919 2035 } 1920 2036 -
trunk/src/wp-admin/includes/plugin-install.php
r27369 r27559 313 313 $api = plugins_api( 'plugin_information', array( 'slug' => wp_unslash( $_REQUEST['plugin'] ), 'is_ssl' => is_ssl() ) ); 314 314 315 if ( is_wp_error( $api) )316 wp_die( $api);315 if ( is_wp_error( $api ) ) 316 wp_die( $api ); 317 317 318 318 $plugins_allowedtags = array( … … 335 335 336 336 //Sanitize HTML 337 foreach ( (array)$api->sections as $section_name => $content ) 337 foreach ( (array)$api->sections as $section_name => $content ) { 338 338 $api->sections[$section_name] = wp_kses($content, $plugins_allowedtags); 339 } 340 339 341 foreach ( array( 'version', 'author', 'requires', 'tested', 'homepage', 'downloaded', 'slug' ) as $key ) { 340 342 if ( isset( $api->$key ) ) 341 343 $api->$key = wp_kses( $api->$key, $plugins_allowedtags ); 342 344 } 345 346 $_tab = esc_attr( $tab ); 343 347 344 348 $section = isset( $_REQUEST['section'] ) ? wp_unslash( $_REQUEST['section'] ) : 'description'; //Default to the Description tab, Do not translate, API returns English. … … 349 353 350 354 iframe_header( __('Plugin Install') ); 351 echo "<div id='$tab-header'>\n"; 352 echo "<ul id='sidemenu'>\n"; 355 356 echo "<div id='{$_tab}-title'>{$api->name}</div>"; 357 echo "<div id='{$_tab}-tabs'>\n"; 358 353 359 foreach ( (array)$api->sections as $section_name => $content ) { 354 360 … … 360 366 $class = ( $section_name == $section ) ? ' class="current"' : ''; 361 367 $href = add_query_arg( array('tab' => $tab, 'section' => $section_name) ); 362 $href = esc_url( $href);368 $href = esc_url( $href ); 363 369 $san_section = esc_attr( $section_name ); 364 echo "\t< li><a name='$san_section' href='$href' $class>$title</a></li>\n";365 } 366 echo "</ul>\n"; 370 echo "\t<a name='$san_section' href='$href' $class>$title</a>\n"; 371 } 372 367 373 echo "</div>\n"; 374 368 375 ?> 369 <div class="alignright fyi"> 370 <?php if ( ! empty($api->download_link) && ( current_user_can('install_plugins') || current_user_can('update_plugins') ) ) : ?> 371 <p class="action-button"> 372 <?php 376 <div id="<?php echo $_tab; ?>-content"> 377 <div class="fyi"> 378 <ul> 379 <?php if ( ! empty( $api->version ) ) : ?> 380 <li><strong><?php _e('Version:') ?></strong> <?php echo $api->version ?></li> 381 <?php endif; if ( ! empty( $api->author ) ) : ?> 382 <li><strong><?php _e('Author:') ?></strong> <?php echo links_add_target($api->author, '_blank') ?></li> 383 <?php endif; if ( ! empty( $api->last_updated ) ) : ?> 384 <li><strong><?php _e('Last Updated:') ?></strong> <span title="<?php echo $api->last_updated ?>"><?php 385 printf( __('%s ago'), human_time_diff(strtotime($api->last_updated)) ) ?></span></li> 386 <?php endif; if ( ! empty( $api->requires ) ) : ?> 387 <li><strong><?php _e('Requires WordPress Version:') ?></strong> <?php printf(__('%s or higher'), $api->requires) ?></li> 388 <?php endif; if ( ! empty( $api->tested ) ) : ?> 389 <li><strong><?php _e('Compatible up to:') ?></strong> <?php echo $api->tested ?></li> 390 <?php endif; if ( ! empty( $api->downloaded ) ) : ?> 391 <li><strong><?php _e('Downloaded:') ?></strong> <?php printf(_n('%s time', '%s times', $api->downloaded), number_format_i18n($api->downloaded)) ?></li> 392 <?php endif; if ( ! empty( $api->slug ) && empty( $api->external ) ) : ?> 393 <li><a target="_blank" href="https://wordpress.org/plugins/<?php echo $api->slug ?>/"><?php _e('WordPress.org Plugin Page »') ?></a></li> 394 <?php endif; if ( ! empty( $api->homepage ) ) : ?> 395 <li><a target="_blank" href="<?php echo $api->homepage ?>"><?php _e('Plugin Homepage »') ?></a></li> 396 <?php endif; ?> 397 </ul> 398 <?php if ( ! empty( $api->rating ) ) : ?> 399 <h3><?php _e('Average Rating') ?></h3> 400 <?php wp_star_rating( array( 'rating' => $api->rating, 'type' => 'percent', 'number' => $api->num_ratings ) ); ?> 401 <small><?php printf( _n('(based on %s rating)', '(based on %s ratings)', $api->num_ratings), number_format_i18n($api->num_ratings) ); ?></small> 402 <?php endif; ?> 403 </div> 404 <div id="section-holder" class="wrap"> 405 <?php 406 if ( ! empty( $api->tested ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->tested ) ), $api->tested, '>' ) ) 407 echo '<div class="updated"><p>' . __('<strong>Warning:</strong> This plugin has <strong>not been tested</strong> with your current version of WordPress.') . '</p></div>'; 408 409 else if ( ! empty( $api->requires ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->requires ) ), $api->requires, '<' ) ) 410 echo '<div class="updated"><p>' . __('<strong>Warning:</strong> This plugin has <strong>not been marked as compatible</strong> with your version of WordPress.') . '</p></div>'; 411 412 foreach ( (array)$api->sections as $section_name => $content ) { 413 414 if ( isset( $plugins_section_titles[ $section_name ] ) ) 415 $title = $plugins_section_titles[ $section_name ]; 416 else 417 $title = ucwords( str_replace( '_', ' ', $section_name ) ); 418 419 $content = links_add_base_url( $content, 'https://wordpress.org/plugins/' . $api->slug . '/' ); 420 $content = links_add_target( $content, '_blank' ); 421 422 $san_section = esc_attr( $section_name ); 423 424 $display = ( $section_name == $section ) ? 'block' : 'none'; 425 426 echo "\t<div id='section-{$san_section}' class='section' style='display: {$display};'>\n"; 427 echo $content; 428 echo "\t</div>\n"; 429 } 430 echo "</div>\n"; 431 echo "</div>\n"; 432 echo "<div id='$tab-footer'>\n"; 433 if ( ! empty( $api->download_link ) && ( current_user_can('install_plugins') || current_user_can('update_plugins') ) ) { 373 434 $status = install_plugin_install_status($api); 374 435 switch ( $status['status'] ) { 375 436 case 'install': 376 437 if ( $status['url'] ) 377 echo '<a href="' . $status['url'] . '" target="_parent">' . __('Install Now') . '</a>';438 echo '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' . __('Install Now') . '</a>'; 378 439 break; 379 440 case 'update_available': 380 441 if ( $status['url'] ) 381 echo '<a href="' . $status['url'] . '" target="_parent">' . __('Install Update Now') .'</a>';442 echo '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' . __('Install Update Now') .'</a>'; 382 443 break; 383 444 case 'newer_installed': 384 echo '<a >' . sprintf(__('Newer Version (%s) Installed'), $status['version']) . '</a>';445 echo '<a class="button button-primary right">' . sprintf(__('Newer Version (%s) Installed'), $status['version']) . '</a>'; 385 446 break; 386 447 case 'latest_installed': 387 echo '<a >' . __('Latest Version Installed') . '</a>';448 echo '<a class="button button-primary right">' . __('Latest Version Installed') . '</a>'; 388 449 break; 389 450 } 390 ?> 391 </p> 392 <?php endif; ?> 393 <h2 class="mainheader"><?php /* translators: For Your Information */ _e('FYI') ?></h2> 394 <ul> 395 <?php if ( ! empty($api->version) ) : ?> 396 <li><strong><?php _e('Version:') ?></strong> <?php echo $api->version ?></li> 397 <?php endif; if ( ! empty($api->author) ) : ?> 398 <li><strong><?php _e('Author:') ?></strong> <?php echo links_add_target($api->author, '_blank') ?></li> 399 <?php endif; if ( ! empty($api->last_updated) ) : ?> 400 <li><strong><?php _e('Last Updated:') ?></strong> <span title="<?php echo $api->last_updated ?>"><?php 401 printf( __('%s ago'), human_time_diff(strtotime($api->last_updated)) ) ?></span></li> 402 <?php endif; if ( ! empty($api->requires) ) : ?> 403 <li><strong><?php _e('Requires WordPress Version:') ?></strong> <?php printf(__('%s or higher'), $api->requires) ?></li> 404 <?php endif; if ( ! empty($api->tested) ) : ?> 405 <li><strong><?php _e('Compatible up to:') ?></strong> <?php echo $api->tested ?></li> 406 <?php endif; if ( ! empty($api->downloaded) ) : ?> 407 <li><strong><?php _e('Downloaded:') ?></strong> <?php printf(_n('%s time', '%s times', $api->downloaded), number_format_i18n($api->downloaded)) ?></li> 408 <?php endif; if ( ! empty($api->slug) && empty($api->external) ) : ?> 409 <li><a target="_blank" href="https://wordpress.org/plugins/<?php echo $api->slug ?>/"><?php _e('WordPress.org Plugin Page »') ?></a></li> 410 <?php endif; if ( ! empty($api->homepage) ) : ?> 411 <li><a target="_blank" href="<?php echo $api->homepage ?>"><?php _e('Plugin Homepage »') ?></a></li> 412 <?php endif; ?> 413 </ul> 414 <?php if ( ! empty($api->rating) ) : ?> 415 <h2><?php _e('Average Rating') ?></h2> 416 <?php wp_star_rating( array( 'rating' => $api->rating, 'type' => 'percent', 'number' => $api->num_ratings ) ); ?> 417 <small><?php printf(_n('(based on %s rating)', '(based on %s ratings)', $api->num_ratings), number_format_i18n($api->num_ratings)); ?></small> 418 <?php endif; ?> 419 </div> 420 <div id="section-holder" class="wrap"> 421 <?php 422 if ( !empty($api->tested) && version_compare( substr($GLOBALS['wp_version'], 0, strlen($api->tested)), $api->tested, '>') ) 423 echo '<div class="updated"><p>' . __('<strong>Warning:</strong> This plugin has <strong>not been tested</strong> with your current version of WordPress.') . '</p></div>'; 424 425 else if ( !empty($api->requires) && version_compare( substr($GLOBALS['wp_version'], 0, strlen($api->requires)), $api->requires, '<') ) 426 echo '<div class="updated"><p>' . __('<strong>Warning:</strong> This plugin has <strong>not been marked as compatible</strong> with your version of WordPress.') . '</p></div>'; 427 428 foreach ( (array)$api->sections as $section_name => $content ) { 429 430 if ( isset( $plugins_section_titles[ $section_name ] ) ) 431 $title = $plugins_section_titles[ $section_name ]; 432 else 433 $title = ucwords( str_replace( '_', ' ', $section_name ) ); 434 435 $content = links_add_base_url($content, 'https://wordpress.org/plugins/' . $api->slug . '/'); 436 $content = links_add_target($content, '_blank'); 437 438 $san_section = esc_attr( $section_name ); 439 440 $display = ( $section_name == $section ) ? 'block' : 'none'; 441 442 echo "\t<div id='section-{$san_section}' class='section' style='display: {$display};'>\n"; 443 echo "\t\t<h2 class='long-header'>$title</h2>"; 444 echo $content; 445 echo "\t</div>\n"; 446 } 451 } 447 452 echo "</div>\n"; 448 453 -
trunk/src/wp-admin/js/plugin-install.js
r27248 r27559 3 3 /* Plugin Browser Thickbox related JS*/ 4 4 var tb_position; 5 jQuery( document).ready(function($) {5 jQuery( document ).ready( function( $ ) { 6 6 tb_position = function() { 7 var tbWindow = $('#TB_window'), 8 width = $(window).width(), 9 H = $(window).height(), 10 W = ( 720 < width ) ? 720 : width, 11 adminbar_height = 0; 7 var tbWindow = $( '#TB_window' ), 8 width = $( window ).width(), 9 H = $( window ).height() - ( ( 850 < width ) ? 60 : 20 ), 10 W = ( 850 < width ) ? 830 : width - 20; 12 11 13 if ( $('#wpadminbar').length ) { 14 adminbar_height = parseInt( $('#wpadminbar').css('height'), 10 ); 12 if ( tbWindow.size() ) { 13 tbWindow.width( W ).height( H ); 14 $( '#TB_iframeContent' ).width( W ).height( H ); 15 tbWindow.css({ 16 'margin-left': '-' + parseInt( ( W / 2 ), 10 ) + 'px' 17 }); 18 if ( typeof document.body.style.maxWidth !== 'undefined' ) { 19 tbWindow.css({ 20 'top': ( ( 850 < width ) ? 30 : 10 ) + 'px', 21 'margin-top': '0' 22 }); 23 } 15 24 } 16 25 17 if ( tbWindow.size() ) { 18 tbWindow.width( W - 50 ).height( H - 45 - adminbar_height ); 19 $('#TB_iframeContent').width( W - 50 ).height( H - 75 - adminbar_height ); 20 tbWindow.css({'margin-left': '-' + parseInt( ( ( W - 50 ) / 2 ), 10 ) + 'px'}); 21 if ( typeof document.body.style.maxWidth !== 'undefined' ) 22 tbWindow.css({'top': 20 + adminbar_height + 'px', 'margin-top': '0'}); 23 } 24 25 return $('a.thickbox').each( function() { 26 var href = $(this).attr('href'); 27 if ( ! href ) 26 return $( 'a.thickbox' ).each( function() { 27 var href = $( this ).attr( 'href' ); 28 if ( ! href ) { 28 29 return; 29 href = href.replace(/&width=[0-9]+/g, ''); 30 href = href.replace(/&height=[0-9]+/g, ''); 31 $(this).attr( 'href', href + '&width=' + ( W - 80 ) + '&height=' + ( H - 85 - adminbar_height ) ); 30 } 31 href = href.replace( /&width=[0-9]+/g, '' ); 32 href = href.replace( /&height=[0-9]+/g, '' ); 33 $(this).attr( 'href', href + '&width=' + W + '&height=' + ( H ) ); 32 34 }); 33 35 }; 34 36 35 $(window).resize(function(){ tb_position(); }); 37 $( window ).resize( function() { 38 tb_position(); 39 }); 36 40 37 41 $('.plugins').on( 'click', 'a.thickbox', function() { … … 44 48 45 49 /* Plugin install related JS*/ 46 $('#plugin-information #sidemenu a').click( function() { 47 var tab = $(this).attr('name'); 50 $( '#plugin-information-tabs a' ).click( function( event ) { 51 var tab = $( this ).attr( 'name' ); 52 event.preventDefault(); 48 53 //Flip the tab 49 $( '#plugin-information-header a.current').removeClass('current');50 $( this).addClass('current');54 $( '#plugin-information-tabs a.current' ).removeClass( 'current' ); 55 $( this ).addClass( 'current' ); 51 56 //Flip the content. 52 $('#section-holder div.section').hide(); //Hide 'em all 53 $('#section-' + tab).show(); 54 return false; 57 $( '#section-holder div.section' ).hide(); //Hide 'em all 58 $( '#section-' + tab ).show(); 55 59 }); 56 60 57 $( 'a.install-now').click( function() {61 $( 'a.install-now' ).click( function() { 58 62 return confirm( plugininstallL10n.ays ); 59 63 }); -
trunk/src/wp-includes/js/thickbox/thickbox.css
r27532 r27559 59 59 padding: 0 29px 0 10px; 60 60 text-overflow: ellipsis; 61 white-space: nowrap; 61 white-space: nowrap; 62 62 width: calc( 100% - 39px ); 63 63 }
Note: See TracChangeset
for help on using the changeset viewer.