SafariはSVGのclipPathsの大ファンではありません。代わりに、古い学校の<Object>
要素に埋め込まれている場合は完全に機能します。それを行うには、PHPヘッダーを使用して正しいContent-type
ものを定義する必要がありapplication/xhtml+xml
ました。それがないと、提供されるのはtext/html
、Safari(および最新バージョンのブラウザの古いバージョン)がSVGを表示しない場合だけです。
PHPをSVGで使用するには、Webサーバーの構成ファイルに2つの追加を追加する必要がありました。Apacheでは、タイプpsvg
をmime-typeファイルに追加して、関連する行が次のようになるようにしました。
image/svg+xml svg svgz psvg
次に、Apache構成ファイルにSVGハンドラーを追加して、関連する行が次のようになるようにする必要がありました。AddType application/x-httpd-php .php .php4 .phtml .psvg
これにより、すべての.psvg
ファイルがPHPとしてレンダリングされます。
そこで、faces.psvgという名前の新しいファイルを作成しました。これは次のようになります。
<?php
header("Content-type: image/svg+xml");
print('<?xml version="1.0" encoding="iso-8859-1"?>');
?>
<svg version="1.1"> //your svg file data </svg>
次に、index.phpという新しい.phpファイルを作成しました。これは次のようになります。
<html>
<head>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
</head>
<body>
<object type="image/svg+xml" data="faces.psvg" width="1120" height="800"></object>
</body>
</html>
そしてvoilá、モバイルSafariでさえ、どこでも動作するsvgクリッピングマスク。