Commit: 78a91db65b91a9bfa69d6d7f0ecdd22db3fe683b Author: Ruslan <[email protected]> Fri, 6 Nov 2020 10:15:14 +0300 Committer: Sara Golemon <[email protected]> Wed, 25 Nov 2020 20:28:13 +0000 Parents: 4fed49de5b151a47fd97c4aec57d43b6acbdb20d Branches: master
Link: http://git.php.net/?p=web/php.git;a=commitdiff;h=78a91db65b91a9bfa69d6d7f0ecdd22db3fe683b Log: JS-13812 Develop markup for PHP 8 announcement on php.net Changed paths: A images/icon_arrow.svg A images/logos/logo_php8.svg A images/party-popper.png A images/[email protected] A images/[email protected] M include/header.inc A php8.php A styles/php8.css M styles/theme-base.css
diff --git a/images/icon_arrow.svg b/images/icon_arrow.svg new file mode 100644 index 000000000..b02bdd6c6 --- /dev/null +++ b/images/icon_arrow.svg @@ -0,0 +1,5 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="19" height="36" viewBox="0 0 19 36"> + <g fill="none" fill-rule="evenodd" stroke-linecap="square" opacity=".6" stroke="#979797"> + <path d="M.528.514L18.472 18M18.472 18L.528 35.486" transform="translate(-709 -793) translate(709 793)"/> + </g> +</svg> diff --git a/images/logos/logo_php8.svg b/images/logos/logo_php8.svg new file mode 100644 index 000000000..ce8cbe861 --- /dev/null +++ b/images/logos/logo_php8.svg @@ -0,0 +1,7 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="343" height="126" viewBox="0 0 343 126"> + <g fill="#FFF"> + <path d="M51.064 41.386c7.962 0 13.268 1.468 15.921 4.408 2.652 2.94 3.283 7.986 1.896 15.136-1.45 7.446-4.238 12.761-8.375 15.945-4.136 3.185-10.43 4.775-18.879 4.775H28.879l7.825-40.264h14.36zM0 122.41h20.958l4.972-25.578h17.95c7.922 0 14.437-.83 19.554-2.496 5.115-1.662 9.763-4.453 13.948-8.37 3.513-3.227 6.353-6.788 8.53-10.682 2.173-3.89 3.718-8.186 4.631-12.885 2.217-11.404.543-20.287-5.016-26.65C79.97 29.386 71.124 26.204 59 26.204H18.7L0 122.41M105.935.626h20.792l-4.971 25.578h18.523c11.656 0 19.695 2.033 24.12 6.098 4.424 4.065 5.75 10.654 3.98 19.761l-8.7 44.77h-21.122l8.271-42.568c.942-4.842.597-8.145-1.039-9.907-1.634-1.761-5.112-2.642-10.432-2.642h-16.618l-10.71 55.116H87.234l18.7-96.206M214.643 41.386c7.962 0 13.268 1.468 15.921 4.408 2.652 2.94 3.284 7.986 1.896 15.136-1.45 7.446-4.238 12.761-8.375 15.945-4.136 3.185-10.43 4.775-18.879 4.775h-12.748l7.825-40.264h14.36zm-51.064 81.024h20.958l4.97-25.578h17.952c7.92 0 14.436-.83 19.553-2.496 5.115-1.662 9.764-4.453 13.949-8.37 3.512-3.227 6.353-6.788 8.53-10.682 2.173-3.89 3.718-8.186 4.63-12.885 2.218-11.404.545-20.287-5.014-26.65-5.56-6.363-14.404-9.545-26.528-9.545h-40.302L163.58 122.41" transform="translate(-548 -112) translate(548 112) translate(0 3)"/> + <path d="M316.964 48.124c-5.653-13.604-10.537-25.357-5.765-33.57 1.773-2.492 3.8-3.755 6.022-3.755 4.474 0 8.56 4.893 8.6 4.943l5.701 6.92-3.564-8.225C327.702 13.847 321.573 0 310.573 0c-3.847 0-7.787 1.732-11.71 5.146l-.125.127c-9.51 10.993-.159 31.75 8.091 50.062l.02.044 6.122 14.232s.64.51 0 0c2.837 7.27 5.561 16.01 3.86 22.373-2.648 9.976-11.504 16.849-11.593 16.917l-5.736 4.393 6.887-2.184c.651-.206 16.007-5.212 19.685-18.518 2.301-10.89-.596-21.788-3.531-30.233.382-.315-.393.333 0 0l-5.348-13.677" transform="translate(-548 -112) translate(548 112)"/> + </g> + <path fill="#0F0F0F" d="M333.91 9.388l-7.136-7.79 5.096 9.254c.064.115 6.257 11.682-1.563 25.209-2.945 4.166-7.35 8.407-13.112 12.62l-10.365 6.656c-.111-.248-.056-.124 0-.002l-.365.264.053-.01-.053.01C295 62.194 284.278 66.235 284.099 66.306c-15.94 7.096-25.877 18.145-27.261 30.313-1.05 9.23 3.168 18.153 11.572 24.482l.11.074c5.283 3.17 10.999 4.778 16.987 4.778 15.74 0 28.016-10.891 28.532-11.356l7.654-6.893-9.093 4.838c-.077.04-7.65 4.02-15.569 4.02-7.06 0-12.14-3.149-15.101-9.36-3.783-13.45 9.477-22.629 24.826-33.25 2.037-1.41 4.133-2.86 6.215-4.34.012.033.116-.119.13-.086l9.084-6.75c.137-.214.37-.38.358-.417 7.548-6.222 17.414-15.901 19.717-29.482 1.781-12.267-7.937-23.037-8.35-23.49z" transform="translate(-548 -112) translate(548 112)"/> +</svg> diff --git a/images/party-popper.png b/images/party-popper.png new file mode 100644 index 000000000..031d8b594 Binary files /dev/null and b/images/party-popper.png differ diff --git a/images/[email protected] b/images/[email protected] new file mode 100644 index 000000000..e3f00a530 Binary files /dev/null and b/images/[email protected] differ diff --git a/images/[email protected] b/images/[email protected] new file mode 100644 index 000000000..1632170c1 Binary files /dev/null and b/images/[email protected] differ diff --git a/include/header.inc b/include/header.inc index 48a93ebd3..ed5aa63b3 100644 --- a/include/header.inc +++ b/include/header.inc @@ -116,6 +116,11 @@ if (!isset($config["languages"])) { <li class="<?php echo $curr == "docs" ? "active" : ""?>"><a href="/docs.php">Documentation</a></li> <li class="<?php echo $curr == "community" ? "active" : ""?>"><a href="/get-involved" >Get Involved</a></li> <li class="<?php echo $curr == "help" ? "active" : ""?>"><a href="/support">Help</a></li> + <li class="<?php echo $curr == "php8" ? "active" : "" ?>"> + <a href="/php8"> + <img src="/images/logos/logo_php8.svg" alt="php8" height="22" width="60"> + </a> + </li> </ul> <form class="navbar-search" id="topsearch" action="/search.php"> <input type="hidden" name="show" value="quickref"> diff --git a/php8.php b/php8.php new file mode 100644 index 000000000..1eddede0d --- /dev/null +++ b/php8.php @@ -0,0 +1,444 @@ +<?php +$_SERVER['BASE_PAGE'] = 'php8.php'; +include_once __DIR__ . '/include/prepend.inc'; + +site_header("php 8", array("current" => "php8")); +?> +<link rel="stylesheet" href="/styles/php8.css"> +<div class="php8"> + <div class="php8__section php8__section_dark php8__section_header center"> + <div class="php8__logo"> + <img src="/images/logos/logo_php8.svg" alt="" height="126" width="343"> + </div> + <div class="php8__title"> + <span class="php8__title-text">released!</span> + <img class="php8__title-img" src="/images/party-popper.png" srcset="/images/[email protected] 2x, /images/[email protected] 3x" alt="" width="58" height="58"> + </div> + <div class="php8__subtitle"> + PHP 8.0 is a major update of the PHP language. It contains many new features and optimizations. Including named + arguments, union types, attributes, constructor property promotion, match expression, nullsafe operator, JIT, and + improvements in type system, error handling, and consistency. + </div> + </div> + + <div class="php8__section center"> + <div class="php8__compare"> + <h2 class="php8__h2"> + Named arguments + <a class="php8__rfc" href="https://wiki.php.net/rfc/named_params">RFC</a> + </h2> + <div class="php8__compare-main"> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label">PHP 7</div> + <div class="php8__code phpcode"> + <code> + <span class="default">htmlspecialchars</span>(<span class="default">$string</span>, + <span class="default">ENT_COMPAT | ENT_HTML401</span>, <span class="string">'UTF-8'</span>, + <span class="keyword">false</span>); + </code> + </div> + </div> + <div class="php8__compare-arrow"></div> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label php8__compare-label_new">PHP 8</div> + <div class="php8__code phpcode"> + <code> + <span class="methodname"><strong>htmlspecialchars</strong></span>(<span class="parameter">$string</span>, + double_encode: <span class="initializer">false</span>); + </code> + </div> + </div> + </div> + </div> + + <div class="php8__compare"> + <h2 class="php8__h2"> + Attributes + <a class="php8__rfc" href="https://wiki.php.net/rfc/attributes_v2">RFC</a> + </h2> + <div class="php8__compare-main"> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label">PHP 7</div> + <div class="php8__code phpcode"> + <code> + <span class="comment">/**</span><br> + <span class="comment">* @Route("/api/posts/{id}", methods={"GET", "HEAD"})</span><br> + <span class="comment">*/</span><br> + <span class="keyword">class</span> <span class="default">User</span><br> + { + </code> + </div> + </div> + <div class="php8__compare-arrow"></div> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label php8__compare-label_new">PHP 8</div> + <div class="php8__code phpcode"> + <code> + #[Route(<span class="string">"/api/posts/{id}"</span>, + methods: [<span class="string">"GET"</span>, <span class="string">"HEAD"</span>])]<br> + <span class="keyword">class</span> <span class="default">User</span><br> + {<br> + </code> + </div> + </div> + </div> + </div> + + <div class="php8__compare"> + <h2 class="php8__h2"> + Constructor property promotion + <a class="php8__rfc" href="https://wiki.php.net/rfc/constructor_promotion">RFC</a> + </h2> + <div class="php8__compare-main"> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label">PHP 7</div> + <div class="php8__code phpcode"> + <code> + <span class="keyword">class</span> Point {<br> + <span class="keyword">public</span> <span class="keyword">float</span> $x;<br> + <span class="keyword">public</span> <span class="keyword">float</span> $y;<br> + <span class="keyword">public</span> <span class="keyword">float</span> $z;<br> + <br> + <span class="keyword">public</span> <span class="keyword">function</span> __construct(<br> + <span class="keyword">float</span> $x = 0.0,<br> + <span class="keyword">float</span> $y = 0.0,<br> + <span class="keyword">float</span> $z = 0.0,<br> + ) {<br> + $this->x = $x;<br> + $this->y = $y;<br> + $this->z = $z;<br> + }<br> + } + </code> + </div> + </div> + <div class="php8__compare-arrow"></div> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label php8__compare-label_new">PHP 8</div> + <div class="php8__code phpcode"> + <code> + <span class="keyword">class</span> Point {<br> + <span class="keyword">public</span> <span class="keyword">function</span> __construct(<br> + <span class="keyword">public</span> <span class="keyword">float</span> $x = 0.0,<br> + <span class="keyword">public</span> <span class="keyword">float</span> $y = 0.0,<br> + <span class="keyword">public</span> <span class="keyword">float</span> $z = 0.0,<br> + ) {}<br> + } + </code> + </div> + </div> + </div> + </div> + + <div class="php8__compare"> + <h2 class="php8__h2"> + Union types + <a class="php8__rfc" href="https://wiki.php.net/rfc/union_types_v2">RFC</a> + </h2> + <div class="php8__compare-main"> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label">PHP 7</div> + <div class="php8__code phpcode"> + <code> + <span class="keyword">class</span> Number {<br> + <span class="comment">/** @var int|float */</span><br> + <span class="keyword">private</span> $number;<br> + <br> + <span class="comment">/**</span><br> + <span class="comment">* @param float|int $number</span><br> + <span class="comment">*/</span><br> + <span class="keyword">public</span> function __construct($number) {<br> + $this->number = $number;<br> + }<br> + }<br> + <br> + <span class="keyword">new</span> Number(<span class="string">'NaN'</span>); <span class="comment">// Ok</span> + </code> + </div> + </div> + <div class="php8__compare-arrow"></div> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label php8__compare-label_new">PHP 8</div> + <div class="php8__code phpcode"> + <code> + <span class="keyword">class</span> Number {<br> + <span class="keyword">public</span> function __construct(<br> + <span class="keyword">private</span> <span class="keyword">int</span>|<span class="keyword">float</span> $number<br> + ) {} + }<br> + <br> + <span class="keyword">new</span> Number(<span class="string">'NaN'</span>); <span class="comment">// TypeError</span> + </code> + </div> + </div> + </div> + </div> + + <div class="php8__compare"> + <h2 class="php8__h2"> + Match expression + <a class="php8__rfc" href="https://wiki.php.net/rfc/match_expression_v2">RFC</a> + </h2> + <div class="php8__compare-main"> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label">PHP 7</div> + <div class="php8__code phpcode"> + <code> + <span class="keyword">switch</span> (8.0) {<br> + <span class="keyword">case</span> <span class="string">'8.0'</span>:<br> + $result = <span class="string">"Oh no!"</span>;<br> + <span class="keyword">break</span>;<br> + <span class="keyword">case</span> 8.0:<br> + $result = <span class="string">"This is what I expected"</span>;<br> + <span class="keyword">break</span>;<br> + }<br> + <span class="keyword">echo</span> $result;<br> + <span class="comment">//> Oh no!</span> + </code> + </div> + </div> + <div class="php8__compare-arrow"></div> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label php8__compare-label_new">PHP 8</div> + <div class="php8__code phpcode"> + <code> + <span class="keyword">echo</span> match (8.0) {<br> + <span class="string">'8.0'</span> => <span class="string">"Oh no!"</span>,<br> + 8.0 => <span class="string">"This is what I expected"</span>,<br> + };<br> + <span class="comment">//> This is what I expected</span> + </code> + </div> + </div> + </div> + </div> + + <div class="php8__compare"> + <h2 class="php8__h2"> + Nullsafe operator + <a class="php8__rfc" href="https://wiki.php.net/rfc/nullsafe_operator">RFC</a> + </h2> + <div class="php8__compare-main"> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label">PHP 7</div> + <div class="php8__code phpcode"> + <code> + $country = <span class="keyword">null</span>;<br> + <br> + <span class="keyword">if</span> ($session !== <span class="keyword">null</span>) {<br> + $user = $session->user;<br> + <br> + <span class="keyword">if</span> ($user !== <span class="keyword">null</span>) {<br> + $address = $user->getAddress();<br> + <br> + <span class="keyword">if</span> ($address !== <span class="keyword">null</span>) {<br> + $country = $address->country;<br> + }<br> + }<br> + } + </code> + </div> + </div> + <div class="php8__compare-arrow"></div> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label php8__compare-label_new">PHP 8</div> + <div class="php8__code phpcode"> + <code> + $country = $session?->user?->getAddress()?->country; + </code> + </div> + </div> + </div> + </div> + + <div class="php8__compare"> + <h2 class="php8__h2"> + Saner string to number comparisons + <a class="php8__rfc" href="https://wiki.php.net/rfc/string_to_number_comparison">RFC</a> + </h2> + <div class="php8__compare-main"> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label">PHP 7</div> + <div class="php8__code phpcode"> + <code> + 0 == <span class="string">'foobar'</span> <span class="comment">// true</span> + </code> + </div> + </div> + <div class="php8__compare-arrow"></div> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label php8__compare-label_new">PHP 8</div> + <div class="php8__code phpcode"> + <code> + 0 == <span class="string">'foobar'</span> <span class="comment">// false</span> + </code> + </div> + </div> + </div> + </div> + + <div class="php8__compare"> + <h2 class="php8__h2"> + Consistent type errors for internal functions + <a class="php8__rfc" href="https://wiki.php.net/rfc/consistent_type_errors">RFC</a> + </h2> + <div class="php8__compare-main"> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label">PHP 7</div> + <div class="php8__code phpcode"> + <code> + strlen([]); <span class="comment">// Warning: strlen() expects parameter 1 to be string, array given</span><br> + <br> + array_chunk([], -1); <span class="comment">// Warning: array_chunk(): Size parameter expected to be greater than 0</span> + </code> + </div> + </div> + <div class="php8__compare-arrow"></div> + <div class="php8__compare-block example-contents"> + <div class="php8__compare-label php8__compare-label_new">PHP 8</div> + <div class="php8__code phpcode"> + <code> + strlen([]); <span class="comment">// TypeError: strlen(): Argument #1 ($str) must be of type string, array given</span><br> + <br> + array_chunk([], -1); <span class="comment">// ValueError: array_chunk(): Argument #2 ($length) must be greater than 0</span> + </code> + </div> + </div> + </div> + </div> + </div> + + <div class="php8__section php8__section_light"> + <h2 class="php8__h2">Other syntax tweaks and improvements</h2> + <div class="php8__columns"> + <div class="php8__column"> + <ul> + <li> + Allow trailing comma in parameter list <a href="https://wiki.php.net/rfc/trailing_comma_in_parameter_list">RFC</a> + and closure use lists <a href="https://wiki.php.net/rfc/trailing_comma_in_closure_use_list">RFC</a> + </li> + <li> + Non-capturing catches <a href="http://TODO">RFC</a> + </li> + <li> + Variable Syntax Tweaks <a href="https://wiki.php.net/rfc/variable_syntax_tweaks">RFC</a> + </li> + </ul> + </div> + <div class="php8__column"> + <ul> + <li> + Treat namespaced names as single token <a href="https://wiki.php.net/rfc/namespaced_names_as_token">RFC</a> + </li> + <li> + Throw expression <a href="https://wiki.php.net/rfc/throw_expression">RFC</a> + </li> + <li> + Allow ::class on objects <a href="https://wiki.php.net/rfc/class_name_literal_on_object">RFC</a> + </li> + </ul> + </div> + </div> + <div class="php8__columns"> + <div class="php8__column"> + <h2 class="php8__h2 php8__h2_margin-top">Type system and error handling improvements</h2> + <ul> + <li> + Saner string to number comparisons <a href="https://wiki.php.net/rfc/string_to_number_comparison">RFC</a> + </li> + <li> + Stricter type checks for arithmetic/bitwise operators + <a href="https://wiki.php.net/rfc/arithmetic_operator_type_checks">RFC</a> + </li> + <li> + Abstract trait method validation <a href="http://TODO">RFC</a> + </li> + <li> + Correct signatures of magic methods <a href="https://wiki.php.net/rfc/magic-methods-signature">RFC</a> + </li> + <li> + Reclassified engine warnings <a href="https://wiki.php.net/rfc/engine_warnings">RFC</a> + </li> + <li> + Fatal error for incompatible method signatures <a href="https://wiki.php.net/rfc/lsp_errors">RFC</a> + </li> + <li> + The @ operator no longer silences fatal errors + </li> + <li> + Inheritance with private methods <a href="https://wiki.php.net/rfc/inheritance_private_methods">RFC</a> + </li> + <li> + Mixed type <a href="https://wiki.php.net/rfc/mixed_type_v2">RFC</a> + </li> + <li> + Static return type <a href="">RFC</a> + </li> + <li> + Types for internal functions + <a href="https://externals.io/message/106522">RFC</a> + </li> + <li> + Curl objects instead of resources + <a href="https://php.watch/versions/8.0/resource-CurlHandle">RFC</a> + </li> + </ul> + </div> + <div class="php8__column"> + <h2 class="php8__h2 php8__h2_margin-top">New Classes, Interfaces, and Functions</h2> + <ul> + <li> + <a href="https://wiki.php.net/rfc/weak_maps">Weak Map</a> class + </li> + <li> + <a href="https://wiki.php.net/rfc/stringable">Stringable</a> interface + </li> + <li> + <a href="https://wiki.php.net/rfc/str_contains">str_contains()</a>, + <a href="https://wiki.php.net/rfc/add_str_starts_with_and_ends_with_functions">str_starts_with()</a>, + <a href="https://wiki.php.net/rfc/add_str_starts_with_and_ends_with_functions">str_ends_with()</a> + </li> + <li> + <a href="https://github.com/php/php-src/pull/4769">fdiv()</a> + </li> + <li> + <a href="https://wiki.php.net/rfc/get_debug_type">get_debug_type()</a> + </li> + <li> + <a href="https://github.com/php/php-src/pull/5427">get_resource_id()</a> + </li> + <li> + <a href="https://wiki.php.net/rfc/token_as_object">token_get_all()</a> object implementation + </li> + </ul> + </div> + </div> + </div> + + <div class="php8__section php8__section_dark php8__section_footer center"> + <h2 class="php8__h2"> + Get free performance improvement.<br class="display-none-lg display-block-md"> + Get better syntax.<br class="display-block-lg display-none-md display-block-sm"> + Get more strictness. + </h2> + <div class="php8__button-wrapper"> + <a class="php8__button php8__button_light" href="#">Go update to PHP 8!</a> + </div> + <div class="php8__footer-content"> + <p> + For source downloads of PHP 8 please visit our <a href="http://www.php.net/downloads">downloads</a> page. + Windows binaries can be found on the <a href="http://windows.php.net/download">PHP for Windows</a> site. + The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-8.php">ChangeLog</a>. + </p> + <p> + The <a href="http://php.net/manual/en/migration8.php">migration guide</a> is available in the PHP Manual. Please + consult it for the detailed list of new features and backward-incompatible changes. + </p> + </div> + </div> +</div> + + + + +<?php site_footer(); \ No newline at end of file diff --git a/styles/php8.css b/styles/php8.css new file mode 100644 index 000000000..557822b66 --- /dev/null +++ b/styles/php8.css @@ -0,0 +1,354 @@ +#layout-content:only-child { + width: 100% !important; +} + +@media (max-width: 979px) and (min-width: 768px) { + .navbar-search { + width: 30% !important; + max-width: calc(100% - 605px) !important; + } +} + +.php8 { + vertical-align: middle; +} + +.php8__section { + padding: 96px 1.5rem; + margin: 0 -1.5rem; +} + +.php8__section_dark { + padding-left: calc((100% - (810px - 3rem))/2); + padding-right: calc((100% - (810px - 3rem))/2); + background-color: #4F5B93; + color: #fff; +} + +.php8__section_dark * { + color: #fff; +} + +.php8__section_light { + background-color: #fff; +} + +@media (max-width: 920px) { + .php8__section { + padding-left: 1.5rem; + padding-right: 1.5rem; + } +} + +.php8__section_header { + padding-top: 64px; + margin-top: -1.5rem; + font-family: Helvetica, Arial, sans-serif; +} + +.php8__section_footer { + margin-bottom: -1.5rem; + font-family: Helvetica, Arial, sans-serif; +} + +.php8__logo { + vertical-align: middle; +} + +.php8__logo img { + max-width: 90%; +} + +.php8__title { + margin-top: 16px; + font-size: 60px; + font-weight: 900; + font-stretch: normal; + font-style: normal; + line-height: 1.07; + letter-spacing: -1.5px; +} + +@media (max-width: 480px) { + .php8__title { + font-size: 50px; + } +} + +.php8__title-text { + vertical-align: middle; +} + +.php8__title-img { + width: 0.9666666666667em; + height: 0.9666666666667em; + margin-left: 2px; + vertical-align: middle; +} + +.php8__subtitle { + margin-top: 48px; + font-size: 28px; + font-weight: 300; + font-stretch: normal; + font-style: normal; + line-height: 1.43; + letter-spacing: normal; + text-align: center; +} + +@media (max-width: 480px) { + .php8__subtitle { + font-size: 24px; + } +} + +.php8__h2 { + font-size: 31px; + font-weight: bold; + font-stretch: normal; + font-style: normal; + line-height: 1.29; + letter-spacing: -0.5px; + color: #27282c; +} + +.php8__h2::after { + display: none; +} + +.php8__h2_margin-top { + margin-top: 48px; +} + +.php8__section_dark .php8__h2 { + color: #fff; +} + +.php8__button-wrapper { + margin-top: 33px; +} + +.php8__button { + display: inline-block; + padding: 16px 46px; + border-radius: 30px; + border: none; + background-color: #4F5B93; + color: #fff !important; + text-decoration: none !important; + font-size: 20px; + font-weight: bold; + font-stretch: normal; + font-style: normal; + line-height: 1.4; + letter-spacing: normal; + text-align: center; +} + +@media (max-width: 640px) { + .php8__button { + padding: 16px 36px; + } +} + +.php8__button_light { + background-color: #fff !important; + color: #27282c !important; +} + +.php8__footer-content { + margin-top: 64px; + text-align: left; + font-size: 15px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.6; + letter-spacing: normal; +} + +#layout-content .php8__section_dark a:link, +#layout-content .php8__section_dark a:visited { + color: #fff; + transition: opacity 0.2s; +} + +#layout-content .php8__section_dark a:hover, +#layout-content .php8__section_dark a:focus { + color: #fff; + border-color: #fff; + opacity: 0.85; +} + +.php8 p:last-child { + margin-bottom: 0; +} + +.display-block-lg { + display: block; +} +.display-none-lg { + display: none; +} + +@media (max-width: 1000px) { + .display-block-md { + display: block; + } + .display-none-md { + display: none; + } +} + +@media (max-width: 640px) { + .display-block-sm { + display: block; + } + .display-none-sm { + display: none; + } +} + +.php8__rfc { + font-size: 15px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.6; + letter-spacing: normal; + vertical-align: middle; + color: #505c90; + border-bottom-color: currentColor; +} + +.php8__compare ~ .php8__compare { + margin-top: 58px; +} + +.php8__compare-main { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +@media (max-width: 810px) { + .php8__compare-main { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + } +} + +.php8__compare-block { + position: relative; + -ms-flex-preferred-size: calc((100% - 68px)/2); + flex-basis: calc((100% - 68px)/2); + text-align: left; +} + +.php8__compare-label { + position: absolute; + top: 12px; + left: 12px; + padding: 6px 16px 4px; + border-radius: 4px; + font-size: 12px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: 1.33; + letter-spacing: normal; + text-align: center; + color: rgba(39, 40, 44, 0.7); + background-color: rgba(39, 40, 44, 0.05); +} + +.php8__compare-label_new { + background-color: #505c90; + color: #fff; +} + +.php8__code { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: 100%; + height: 100%; + padding: 50px 76px 38px !important; + box-sizing: border-box; + margin: 0 !important; +} + +@media (max-width: 1000px) { + .php8__code { + padding-left: 50px !important; + padding-right: 50px !important; + } +} + +@media (max-width: 768px) { + .php8__code { + padding-left: 12px !important; + padding-right: 12px !important; + } +} + +.php8__compare-arrow { + height: 36px; + width: 20px; + margin: auto; + background: url("/images/icon_arrow.svg") scroll no-repeat center center / contain transparent; +} + +@media (max-width: 810px) { + .php8__compare-arrow { + margin-top: 10px; + margin-bottom: 10px; + transform: rotate(90deg); + } +} + +.php8__section ul { + +} + +.php8__section li ~ li { + margin-top: 24px; +} + +.php8__columns { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +@media (max-width: 768px) { + .php8__columns { + display: block; + } +} + +.php8__column { + -ms-flex-preferred-size: calc((100% - 68px)/2); + flex-basis: calc((100% - 68px)/2); +} + +@media (max-width: 768px) { + .php8__column { + width: 100%; + } +} \ No newline at end of file diff --git a/styles/theme-base.css b/styles/theme-base.css index 5a55a0815..fead11a7d 100644 --- a/styles/theme-base.css +++ b/styles/theme-base.css @@ -213,6 +213,9 @@ textarea { float: none; padding: .75rem; } +.navbar .nav > li > a > img { + vertical-align: middle; +} @-ms-viewport { width: device-width; }
-- PHP Webmaster List Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
